Mathcad, hogyan kell kezelni a fájl vegyes numerikus és sztring adatok

Mathcad: hogyan kell kezelni egy fájlt vegyes numerikus és sztring adatokat?

Olvasása és feldolgozása a mátrix vagy vektor egy szöveges fájlt Mathcad elég egyszerű:
  • READPRN funkció ( „fájlnév”) visszatér egy mátrixot, amelyben minden sorban határozza meg a rekordok (sorok) a fájl. Az elemek száma (számértékek) minden sor a fájl azonosnak kell lennie. Formájában használjuk A: = READPRN ( "fájlnév"). ahol A - tömb;
  • WRITEPRN funkció ( „filename”) írja mátrix az adatállományban. Minden sor a mátrix válik fájl rekordot. Formájában használjuk WRITEPRN ( "fájlnév"): = A. ahol A - tömb;
  • APPENDPRN funkció ( „fájlnév”) hozzáfűzi, hogy a tömb egy létező fájlt. Formájában használjuk APPENDPRN ( "fájlnév"): = A. A meglévő fájl azonosnak kell lennie az oszlopok száma, mint a tömb A.

Ezek a funkciók tervezték, hogy a strukturált adatállomány, ez a fájl tartalmazza a számát, sorokba és oszlopokba. Ennek a speciális esetben a fájl tartalmazhat egy sort vagy oszlopot a számok, hogy van, hogy egy sor vektor vagy oszlopvektor.

Egy gyakorlati példa megoldani ezt a feladatot:

A fájl tartalmazza a mátrix N tanuló fokozat alanyok számára M, N> 1, M> 0. Olvasni az adatokat, és kiszámítja a következő mennyiségeket:
  • Az átlagos pontszám minden alany és minden diák;
  • teljes átlagos pontszám-csoport;
  • számolja meg a "2", "3", "4" és "5".

Ha a forrás adatok tárolása data.txt fájltípus

A teljes megoldás kód így néz ki:


írni és olvasni a mátrix Mathcad

Ha a fájl „rossz”, azaz nem tartalmaz azonos számú számértékek minden sorban, a funkció READPRN ez nem olvasható. Továbbá, mi ellenőrizze, hogy vannak olyan megengedhető az értékelési fájl (vagyis az értékek 2, 3, 4 vagy 5) változó ellenőrzése.

Az eredményeket egy fájlba az aktuális mappában eredmeny.txt, ez az, ami ott történt:

Jobb alsó kellett hozzá egy nullát APPENDPRN nem volt hajlandó hozzáfűzni egy fájl sor vektor átlag három beteg.

Erre a kódot dolgozni, szüksége van egy 3 feltétel:
  • MathCAD dokumentum lett mentve legalább egyszer;
  • data.txt szöveges fájl mentése ugyanabba a mappába, mint a dokumentum MathCAD;
  • A szövegben a fájl csak numerikus értékeket, számuk minden sorban ugyanazt a fájlt (a helyek száma vagy fülek közötti értékek az egy sorban nem számít).

Melyik volt kényelmetlen a mi a döntés? Először is, a diákok a listából különböznek egymástól csak számokat. Tudom, hogy Mathcad olvasni normál szöveges fájlt a szöveg és számok, és még lehetővé teszi, hogy különböző számú határoló a sorok és a különböző számok száma ugyanabban a sorban?

A probléma megoldására célszerű használni egy programozási panel és READCSV funkciót. olvasható tetszőleges szöveges adat. Ez a funkció elérhető Mathcad Version 15

Készítsük el a következő funkciókat:
  • char (s, i) - kivonjuk a szimbólum s karakterláncot a megengedhető száma i;
  • isdiv (ek) - ellenőrzi, hogy a karakterlánc elválasztó s, vagyis a tér, fül vagy soremelés. Garancia 0 vagy 1;
  • trimstr (ek) - eltávolítja az extra elválasztó az elején a sor végére, és azok között zsetont. Visszaadja egy string tokenek, elválasztva egy szóköz.


Char funkciója és isdiv (Mathcad)


trimstr funkció (Mathcad)

Az érték a rendszer beállításait ORIGIN nullának (ez az alapértelmezett), a beállítás az Eszközök - Feladatlap lehetőségek - Számítások - A ORIGIN húr indexelés nincs beállítva, azaz vonalak mindig indexelve a nullától, értékétől függetlenül a származási. ez az alapértelmezés is.

Most már készen állunk, hogy írjon egy függvényt, amely értelmezi a mátrix egy oszlopra, amely a rekord formájában (file test.txt):


parse (Mathcad) függvény

A függvény feltételezi, hogy az első, a fennmaradó trimstr feldolgozás után egy másik húr token egy string, beleesik egy sor nevek. míg a megmaradt jelzőket - számértékek vannak írva a mátrix Balls.

Lényeges, hogy ez a funkció nem tévesztendő számos non-labdák adatok (a megfelelő helyzetben van a mátrix van írva nulla cm. Üzemeltető hiba), vagy különböző számú számok egy sorban (Mathcad automatikusan a „kinagyított” mátrix kitöltésével szabad oszlopok nullák).

Test.txt elmentett szövegfájlt Unicode (UTF-8), ebben az esetben, a vadonatúj Mathcad 15 M045 olvasható cirill betűkkel, minden gond nélkül.

Továbbra is ellenőrizni, hogy ki, majd használja a neveket és a labdák tömbök a saját belátása szerint, például az előző probléma.


parse (Mathcad) funkció teszt

Ui Minden hosszú kódot kell venni, természetesen, mint egy akadémikus. Tényleg tudnánk konfigurálása olvasás READCSV funkció, hogy megoldja a problémát a 3 sornyi kód:

Mathcad, hogyan kell kezelni a fájl vegyes numerikus és sztring adatok

READCSV - egy rövid kódot olvasni egy CSV fájlból

list.txt aktában extra elválasztó, mint például:

Ha a fájl mentése a Jegyzettömb ha menteni Unicode vagy UTF-8 BOM védjegy Mathcad'u ne zavarja. szintén nem szabad összekeverni a funkció a „hiányzó” az adatok, ebben az esetben azt helyettesíteni őket nullák.