155GIT1 / 4. cvičení: Porovnání verzí

Z GeoWikiCZ
Řádek 80: Řádek 80:
a: 10 -> a^2: 100
a: 10 -> a^2: 100
</source>
</source>
=== Formátované čtení matice ===


== Úlohy ==
== Úlohy ==


* http://peso.fsv.cvut.cz/vyuka/git1/4.html
* http://peso.fsv.cvut.cz/vyuka/git1/4.html

Verze z 10. 3. 2015, 18:54

Čtení a zápis textových souborů

Náplň cvičení

  1. opakování - workspace
  2. zápis matice do textového souboru
  3. formátování výstupu
  4. čtení matice z textového souboru

Ukázky

Formátovaný zápis matice

A = rand(3,4) * 10;
f = fopen('a.txt', 'w');
fprintf(f, '%f %f %f %f\n', A);
fclose(f); # zápis je proveden až při uzavření souboru
type a.txt 
5.272319 6.032164 4.710683 3.489846
3.702292 9.547577 9.105915 4.923848
6.948680 8.851383 7.628851 6.733618
#
# změna dimenze matice při zápisu
f = fopen('a1.txt', 'w');
fprintf(f, '%f %f %f\n', A);
fclose(f);
type a1.txt 
5.272319 6.032164 4.710683
3.489846 3.702292 9.547577
9.105915 4.923848 6.948680
8.851383 7.628851 6.733618
#
# změna formátování
f = fopen('a2.txt', 'w');
fprintf(f, '%.1f %.1f %.1f %.1f\n', A);
fclose(f);
type a2.txt
5.3 6.0 4.7 3.5
3.7 9.5 9.1 4.9
6.9 8.9 7.6 6.7
#
# zápis dat do již existujícího souboru
f = fopen('a.txt', 'a')ů
fprintf(f, '%f %f %f %f\n', A(1,:));
fclose(f);
type a.txt
5.272319 6.032164 4.710683 3.489846
3.702292 9.547577 9.105915 4.923848
6.948680 8.851383 7.628851 6.733618
5.272319 3.489846 9.105915 8.851383

Formátování dat obecně

fprintf('%s: %i\n', 'moje nahodne cislo (1 az 100)', randi(100))
moje nahodne cislo (1 az 100): 31
#
# uložení do řetězce
r = sprintf('%s: %i\n', 'moje nahodne cislo (1 az 100)', randi(100))
class(r)
ans = char
#
# příklad formátování dvou řádkových vektorů 
fprintf("a: %.2d -> a^2: %.3d\n", [a; a.^2])
a: 01 -> a^2: 001
a: 02 -> a^2: 004
a: 03 -> a^2: 009
a: 04 -> a^2: 016
a: 05 -> a^2: 025
a: 06 -> a^2: 036
a: 07 -> a^2: 049
a: 08 -> a^2: 064
a: 09 -> a^2: 081
a: 10 -> a^2: 100

Formátované čtení matice

Úlohy