155GIT1 / 4. cvičení: Porovnání verzí
mBez shrnutí editace |
mBez shrnutí editace |
||
Řádek 53: | Řádek 53: | ||
fid = fopen('pr4uk4.txt','r'); | fid = fopen('pr4uk4.txt','r'); | ||
uhel = fscanf(fid,'%*s %f %f %f',[3 inf])' % čtení jen numerických hodnot | uhel = fscanf(fid,'%*s %f %f %f',[3 inf])' % čtení jen numerických hodnot | ||
uhelid = fscanf(fid,'%s %* | uhelid = fscanf(fid,'%s %*s %*s %*s',[3 inf])' % kurzor je již na konci datového souboru | ||
fseek(fid,0,'bof'); % přesun kurzoru na začátek souboru | fseek(fid,0,'bof'); % přesun kurzoru na začátek souboru | ||
% totožné fseek(fid,0,-1) | % totožné fseek(fid,0,-1) | ||
uhelid = fscanf(fid,'%s %* | uhelid = fscanf(fid,'%s %*s %*s %*s',[3 inf])' % čtení jen (3znakových) textových identifikátorů | ||
fclose all; | fclose all; | ||
</source> | </source> |
Aktuální verze z 15. 3. 2023, 22:07
Čtení formátovaných dat z textových souborů
Náplň
- čtení dat z textového souboru do matice (ke stažení pr4uk1.txt, pr4uk2.txt, pr4uk3.txt, pr4uk4.txt)
Ukázky
Formátované čtení dat
(čtení z textového souboru)
fid = fopen('pr4uk1.txt','r');
bxy = fscanf(fid,'%f',[3 inf]);
bxy = bxy' % pro shodné rozměry matice jako v datovém souboru
fclose(fid);
% přeskakování položek
fid = fopen('pr4uk1.txt','r');
xy = fscanf(fid,'%*f %f %f',[2 inf]);
xy = xy'
fclose(fid);
(čtení z řetězce / z textové proměnné)
s = sscanf('10.2 5.222','%f')
(čtení textových souborů s hlavičkou)
fid = fopen('pr4uk2.txt','r');
radek = fgetl(fid); % evtl. fgets(fid) pro načtení řádku včetně znaku zalomení řádku
rs = sscanf(radek,'%d')
r = rs(1);
s = rs(2);
bxyz = fscanf(fid,'%f',[s r])'
fclose(fid);
vstup = fopen('pr4uk3.txt','r');
radek = fscanf(vstup,'%s',4)
bxyh = fscanf(vstup,'%f',[4 inf])'
fclose(vstup);
Změna polohy kurzoru v souboru
fid = fopen('pr4uk4.txt','r');
uhel = fscanf(fid,'%*s %f %f %f',[3 inf])' % čtení jen numerických hodnot
uhelid = fscanf(fid,'%s %*s %*s %*s',[3 inf])' % kurzor je již na konci datového souboru
fseek(fid,0,'bof'); % přesun kurzoru na začátek souboru
% totožné fseek(fid,0,-1)
uhelid = fscanf(fid,'%s %*s %*s %*s',[3 inf])' % čtení jen (3znakových) textových identifikátorů
fclose all;