Uživatel:Jkl~cswikiversity/Studuji Matlab/vscht: Porovnání verzí

Smazaný obsah Přidaný obsah
Juandev (diskuse | příspěvky)
→‎3. lekce: -kmeziuložení
Řádek 21:
 
== 3. lekce ==
Matlab umí - kupodivu - pracovat i s řetězci. Ty se ukládají v "jednoduchých uvozovkách" - t.j. podobně jako v pascalu, PHP a jinak než v C/C++.Špatný vtip je v tom, že pokud chceme řetězce uložit do matice, musí mít všechny stejnou délku - čili jsou asi implementovány jako char[n] nikoliv jako třeba zero-terminated string jako v Céčku a spol, string s délkou v prvním bytu jako v pascalu či dokonce v nějakém std::stringu jako v C++. Ach jo. Pro práci se stringy existují funkce, které se vesměs jmenují stejně jako Cčkové (známé i z jazyků jím inspirovaných jako je PHP) - str2num, num2str, strcmp, upper,lower ...).
 
Podmínka se píše jako '''if''', jednoduše bez závorek, bez středníků. Lze použít elseif a to i několikrát, konec podmínkových větví končí příkazem '''end'''.
 
Programy či makra v matlabu se označují jako "skripty". Jedná se o běžně interpretované ASCII soubory s příponou .m, pro jejichž jména platí stejné podmínky jako pro jména proměnných. Matlab má barevný editor pro tyto soubory, ale masochisté je mohou editovat klidně v poznámkovém bloku a frajeři ve vimu. Když chceme skript spustit, musíme být ve stejném adresáři (cd whatever) a pak napíšeme jméno souboru ''bez přípony''. Ano, vše nasvědčuje tomu, že je matlab tak blbý, že neumí spustit skript z jiného než aktuálního adrešáře. Ještě že máme v UNIXu symlinky ...
 
Jako většina civilizovaných jazyků "umí" matlab i funkce. Ty mají tu "výhodu" že nevidí na globální proměnné a narozdíl třeba od PHPčka neexistuje klauzule global, která by je zpřístupnila. Takže co chceme funkci dát, to jí musíme předat jako vstupní parametr. Fuj. Syntax funkce je '''<nowiki>function [výstupy]= jmeno_funkce (vstupy)</nowiki>'''. Aby nebylo prasáren dost, může být výstupů víc a pokud je jen jeden, nemusí se psát hranatá závorka. Pokud hned za deklaraci funkce dáme komentáře, tak se vypíšou při volání příkazu help název_funkce. Pokud funkce selže, můžeme volat error, ev. s textovým parametrem (vypadá to stejně jako write() v Pascalu. Funkci musíme uložit pod stejnojmenným názvem do .m souboru. Ach jo. Vypsat funkci lze příkazem '''type''' (koho to pobuřuje ve vzpomínce na Pascal s tím souhlasím !!).
 
Existuje funkce nargin udávající počet vstupních parametrů. Stejně jako v C++ lze ignorovat parametry postupně zprava. Mimochodem - teprve tady zjišťuji, že matlab místo != píše ~= . Fúúúj.
 
Debugging: F12 breakpoint, F10-F11 krokování.
 
== 4. lekce ==
== 5. lekce ==