155GIT1 / 4. cvičení: Porovnání verzí
m Obsah stránky nahrazen textem „{{Geoinformatika}} {{Cvičení|155GIT1|4|}} == Náplň == == Ukázky == == Úlohy == * 4. cvičení - příklady…“ značka: nahrazeno |
mBez shrnutí editace |
||
Řádek 1: | Řádek 1: | ||
{{Geoinformatika}} | {{Geoinformatika}} | ||
{{Cvičení|155GIT1|4|}} | {{Cvičení|155GIT1|4|Čtení formátovaných dat}} | ||
== Náplň == | == Náplň == | ||
# čtení dat z textového souboru do matice (ke stažení [http://geo102.fsv.cvut.cz/vyuka/155GIT1/data/cv3data.txt cv3data.txt]) | |||
== Ukázky == | == Ukázky == | ||
=== Formátované čtení dat === | |||
''(čtení z textového souboru)'' | |||
<source lang=octave> | |||
fid = fopen('cv3data.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 | |||
xy = fscanf(fid,'%*f %f %f',[2,inf]); | |||
xy = xy'; | |||
</source> | |||
''(čtení z řetězce)'' | |||
<source lang=octave> | |||
s = sscanf('10.2 5.222','%f %f') | |||
</source> | |||
=== Změna polohy kurzoru v souboru === | |||
<source lang=octave> | |||
fid = fopen('s.txt','w'); | |||
fprintf(fid,'%f\n',[1 2; 3 4]'); | |||
fclose(fid); | |||
type s.txt | |||
1.000000 | |||
2.000000 | |||
3.000000 | |||
4.000000 | |||
fid = fopen('s.txt','r'); | |||
a = fscanf(fid,'%f',[1, inf]) | |||
b = fscanf(fid,'%f',[2, inf]) % kurzor je již na konci datového souboru s.txt | |||
fseek(fid,0,'bof'); % totožně fseek(fid,0,-1); anebo frewind(fid); | |||
b = fscanf(fid,'%f',[2, inf]) | |||
fseek(fid,2,'bof'); | |||
c = fscanf(fid,'%f',[2, inf]) | |||
fclose all; | |||
</source> | |||
== Úlohy == | == Úlohy == | ||
* [[155GIT1 / 4. cvičení / Příklady|4. cvičení - příklady]] | * [[155GIT1 / 4. cvičení / Příklady|4. cvičení - příklady]] | ||
<!-- --> | <!-- --> |
Verze z 9. 2. 2022, 22:09
Čtení formátovaných dat
Náplň
- čtení dat z textového souboru do matice (ke stažení cv3data.txt)
Ukázky
Formátované čtení dat
(čtení z textového souboru)
fid = fopen('cv3data.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
xy = fscanf(fid,'%*f %f %f',[2,inf]);
xy = xy';
(čtení z řetězce)
s = sscanf('10.2 5.222','%f %f')
Změna polohy kurzoru v souboru
fid = fopen('s.txt','w');
fprintf(fid,'%f\n',[1 2; 3 4]');
fclose(fid);
type s.txt
1.000000
2.000000
3.000000
4.000000
fid = fopen('s.txt','r');
a = fscanf(fid,'%f',[1, inf])
b = fscanf(fid,'%f',[2, inf]) % kurzor je již na konci datového souboru s.txt
fseek(fid,0,'bof'); % totožně fseek(fid,0,-1); anebo frewind(fid);
b = fscanf(fid,'%f',[2, inf])
fseek(fid,2,'bof');
c = fscanf(fid,'%f',[2, inf])
fclose all;