Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyVýpočetní matematické systémy Jak pracovat s MATLABem Logické operace Funkce find() a exist()

Logo Matematická biologie

Funkce find() a exist()

Další užitečnou funkcí je funkce find(), která vrací indexy nenulových prvků vstupního vektoru nebo matice.
Možnosti použití funkce find():

I = find(x) do proměnné I umístí indexy nenulových prvků vektoru x
I = find(A) do proměnné I umístí indexy nenulových prvků matice A, ty jsou brány po sloupcích
[I,J] = find(A) umístí do I řádkové indexy a do "J" sloupcové indexy nenulových prvků matice "A"
[I,J,K] = find(A) do proměnné K navíc umístí příslušné nenulové prvky
[I,J,K] = find(x) do proměnné I umístí řádkové indexy, do proměnné J sloupcové indexy nenulových prvků vektoru x a do proměnné K jeho nenulové hodnoty

Častým použitím funkce find() jsou případy, kdy vektor x nebo matice A jsou logické vektory/matice, tzn. jsou výstupem porovnávacích operací.

[I,J] = find(A >= 0)   hledá nezáporné prvky matice A a jejich indexy

Existenci a typy objektů MATLABu lze testovat pomocí funkce exist().Výstupem příkazu ex = exist('A') jsou následující možnosti proměnné ex:

0 objekt s názvem A neexistuje
1 je proměnná
2 je  m-soubor v běžném adresáři nebo v MATLABPATH
3 je MEX-soubor v běžném adresáři nebo v MATLABPATH
4 je kompilovaná funkce v systému SIMULINK1
5 je interní (předkompilovaná) funkce MATLABu
6 je předkompilovaná m-funkce s názvem A.p. Soubor A.p lze  vytvořit pomocí příkazu pcode (více viz help pcode)
7 je adresář

Při kolizi názvů (existují-li různé objekty se stejným názvem) platí následující priorita:

1. proměnná
2. interní funkce
3. funkce MEX (napřed pracovní adresář, pak MATLABPATH od začátku)
4. příkaz jako p-soubor (napřed pracovní adresář, pak MATLABPATH od začátku)
5. příkaz jako m-soubor (napřed pracovní adresář, pak MATLABPATH od začátku)

Funkci exist() je možné také použít se dvěma parametry:

Výstupní hodnota je tak 1, pokud A jako daný typ existuje, v opačném případě je výstupní hodnotou 0.

 

 


1SIMULINK je nadstavba MATLABu pro simulaci a modelování dynamických systémů.

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity