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:
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.