|
|
Hlavní stránka
Přehled kapitol
1. Krátké představení Octave
2. Práce s programem
3. Datové typy
4. Číselné datové typy
5. Řetězce
6. Datové struktury
7. Datové kontejnery
8. Proměnné
9. Výrazy
10. Vyhodnocení
11. Příkazy
12. Funkce a skriptovací
soubory
13. Vstup a výstup
14. Vykreslování
15. Práce s maticemi
16. Aritmetika
17. Lineární algebra
18. Nelineární rovnice
19. Kvadratura
20. Diferenciální rovnice
21. Práce s polynomy
22. Teorie řízení
|
|
6. Datové struktury
Octave zahrnuje podporu pro organizování dat ve strukturách. Současná
implementace používá asociativních polí, ale syntaxe je více podobná
strukturám jazyka C. Následují nějaké příklady používání struktur v
Octave.
Prvky struktury mohou být libovolného typu. Například tyto tři výrazy
x.a = 1
x.b = [1, 2; 3, 4]
x.c = "string"
vytvoří strukturu se třemi prvky. K výpisu hodnoty struktury stačí pouze
napsat její jméno, stejně jako u kterékoli jiné proměnné.
Poznamenejme, že Octave může jednotlivé prvky vypisovat v libovolném pořadí.
Struktury také mohou být mezi sebou kopírovány.
Struktury jako takové mohou v sobě dále uchovávat další struktury.
Následující tvrzení změní hodnotu prvku b struktury x na datovou strukturu
obsahující jediný element d, který má hodnotu 3.
Poznamenejme, že Octave vypisuje hodnoty struktury obsahující jiné struktury,
a zobrazuje pouze určitý počet zanoření. Například:
Toto zabraňuje dlouhému a matoucímu výstupu z hluboko zanořených struktur.
Zabudovaná proměnná: struct_levels_to_print
Pomocí ní můžete Octave sdělit, kolik si přejete zobrazovat zanoření ve
strukturách. Původní hodnota je 2.
Funkce mohou vracet struktury. Například následující funkce odděluje reálné
a komplexní části matice a ukládá je do dvou prvků jedné struktury - proměnné.
function y = f (x)
y.re = real (x);
y.im = imag (x);
endfunction
Když se tato funkce zavolá s argumentem komplexní hodnoty, f vrátí datovou
strukturu obsahující reálnou a imaginární složku originálního argumentu
funkce.
Funkce vrací seznam, který může obsahovat prvky struktury, a ty mohou být
indexovány stejně jako jiné proměnné. Například:
[ x.u, x.s(2:3,2:3), x.v ] = svd ([1, 2; 3, 4])
x.u =
-0.40455 -0.91451
-0.91451 0.40455
x.s =
0.00000 0.00000 0.00000
0.00000 5.46499 0.00000
0.00000 0.00000 0.36597
x.v =
-0.57605 0.81742
-0.81742 -0.57605
Následující funkce slouží k získání informací o strukturách.
Zabudovaná proměnná: isstruct(vyraz)
Vrací 1 pokud je hodnota výrazu struktura.
Zabudovaná funkce: fieldnames (struct)
Vrací buňku pole řetězce jmenující prvky struktury struct. Volání této
funkce s hodnotou argumentu, který není strukturou končí chybovou hláškou.
Zabudovaná funkce: isfield (expr, name)
Vrací hodnotu true, pokud výraz expr je strukturou a obsahuje prvek
pojmenovaný name. První argument musí být struktura a druhý musí být
řetězec.
|
|