% 10. cvičení z předmětu PPEL - MATLAB zadavani_matice % funkce zadavani_matice.m % viz 1. část m-file zadavani_matice.m % na http://home.zcu.cz/~lsroubov/PPEL % uživatel zadá "r", "s" a prvky matice % V m-file je navíc ošetřeno zadávání % matice může mít velikost maximálně 7x7 Zadejte rozmery matice (matice muze mit velikost maximalne 7x7): Zadej pocet radku matice: r = 3 Zadej pocet sloupcu matice: s = 2 Zadej prvky matice: prvek [1,1]: 1 prvek [1,2]: 2 prvek [2,1]: 3 prvek [2,2]: 4 prvek [3,1]: 5 prvek [3,2]: 6 Zadana matice: 1 2 3 4 5 6 % ----------------- % ~ značí negaci % ----------------- ~(0) % negace 0 (nepravdy) je 1 (pravda) ans = 1 ~(1) % negace 0 (nepravdy) je 1 (pravda) ans = 0 % ----------------- zadavani_matice % funkce zadavani_matice.m % viz http://home.zcu.cz/~lsroubov/PPEL % vytvoří ze sloupců zadané matice sloupcový vektor a najde v tomto % sloupcovém vektoru 2. největší prvek. % Hledání je prováděno 3 způsoby: % - tříděni pomocí příkazu SORT a vypsání předposledního prvku % - tříděni pomocí záměnného třídění (tv. bubblesort) a vypsání předposledního prvku % - nahrazení maxima minimem a poté nalezením dalšího maxima % uživatel zadá "r", "s" a prvky matice Zadejte rozmery matice (matice muze mit velikost maximalne 7x7): Zadej pocet radku matice: r = 2 Zadej pocet sloupcu matice: s = 3 Zadej prvky matice: prvek [1,1]: 1 prvek [1,2]: 2 prvek [1,3]: -1 prvek [2,1]: 2.456 prvek [2,2]: 2.98745 prvek [2,3]: 3 Zadana matice: 1 2 -1 2.456 2.9874 3 Vytvoreny vektor: 1 2.456 2 2.9874 -1 3 Zvol zpusob vypoctu 1, 2 nebo 3 (volba 0 pro ukonceni): Tvoje volba: 1 trideni pomoci prikazu SORT 2. nejvetsi prvek je 2.9874. Zvol zpusob vypoctu 1, 2 nebo 3 (volba 0 pro ukonceni): Tvoje volba: 3 Zpusob hledani - nahrazeni maxima minimem 2. nejvetsi prvek je 2.99. Zvol zpusob vypoctu 1, 2 nebo 3 (volba 0 pro ukonceni): Tvoje volba: 2 BUBBLESORT - záměnové třídění (probubláváním): 2. nejvetsi prvek je 2.987. Zvol zpusob vypoctu 1, 2 nebo 3 (volba 0 pro ukonceni): Tvoje volba: 3 Zpusob hledani - nahrazeni maxima minimem 2. nejvetsi prvek je 2.99. Zvol zpusob vypoctu 1, 2 nebo 3 (volba 0 pro ukonceni): Tvoje volba: 0 %------------------------ % Logické operátory % & and (a zároveň) - jsou obě hodnoty pravdivé % | or (nebo) - je alespoň jedna hodnota pravdivá % xor (exkluzivní nebo) - je právě jedna hodnota pravdivá % ~ (negace) - pravda když byla nepravda a naopak %------------------------ (3<5)&(4<6) % pravda a zároveň pravda ans = % výsledek pravda 1 (3<5)&(4>6) % pravda a zároveň nepravda ans = % výsledek nepravda 0 (3>5)&(4>6) % nepravda a zároveň nepravda ans = % výsledek nepravda 0 % ----------------------- (3<5)|(4<6) % pravda nebo pravda ans = % výsledek pravda 1 (3<5)|(4>6) % pravda nebo nepravda ans = % výsledek pravda 1 (3>5)|(4>6) % nepravda nebo nepravda ans = % výsledek nepravda 0 or((3>5),(4<6)) % lze psát i takto, nepravda nebo pravda ans = % výsledek pravda 1 % ----------------------- xor((3<5),(4<6)) % pravda exkluziv.nebo pravda ans = % výsledek nepravda !! 0 xor((3<5),(4>6)) % pravda exkluziv.nebo nepravda ans = % výsledek pravda 1 xor((3>5),(4>6)) % nepravda exkluziv.nebo nepravda ans = % výsledek nepravda 0 % ----------------------- ~(3<5) % nepravda ans = 0 not(3<5) % nepravda ans = 0 (~(3<5))&(4<6) % nepravda a zároveň pravda ans = % výsledek nepravda 0 (~(3<5))&(~(4<6)) % nepravda a zároveň nepravda ans = % výsledek nepravda 0 (~(3<5))|(4<6) % nepravda nebo pravda ans = % výsledek pravda 1 (~(3<5))|(~(4<6)) % nepravda nebo nepravda ans = % výsledek nepravda 0 %----------------------- ctverc_matice % funkce ctverc_matice.m % viz http://home.zcu.cz/~lsroubov/PPEL % z dané čtvercové matice vytvoří matici tak, že prvky v pásech % okolo hlavní a vedlejší diagonály nahradí nulami. % V m-file je navíc ošetřeno zadávání - matice může % mít maximálně velikost 10x10 a minimálně 3x3. % uživatel zadá rozměr matice "r" a prvky matice Zadejte rozmer ctvercove matice (matice muze mit velikost maximalne 10x10): Zadej pocet radku ctvercove matice: r = 3 Zadej prvky matice: prvek [1,1]: 1 prvek [1,2]: 2 prvek [1,3]: 3 prvek [2,1]: 4 prvek [2,2]: 5 prvek [2,3]: 6 prvek [3,1]: 7 prvek [3,2]: 8 prvek [3,3]: 9 Zadana matice: 1 2 3 4 5 6 7 8 9 Upravena matice: 1 0 3 0 5 0 7 0 9 ctverc_matice % funkce ctverc_matice.m % viz http://home.zcu.cz/~lsroubov/PPEL % z dané čtvercové matice vytvoří matici tak, že prvky v pásech % okolo hlavní a vedlejší diagonály nahradí nulami. % V m-file je navíc ošetřeno zadávání - matice může % mít maximálně velikost 10x10 a minimálně 3x3. % uživatel zadá rozměr matice "r" a prvky matice Zadejte rozmer ctvercove matice (matice muze mit velikost maximalne 10x10): Zadej pocet radku ctvercove matice: r = 7 Zadej prvky matice: prvek [1,1]: 1 prvek [1,2]: -1 prvek [1,3]: 2 prvek [1,4]: -2 prvek [1,5]: 3 prvek [1,6]: -3 prvek [1,7]: 4 prvek [2,1]: 0 prvek [2,2]: 1 prvek [2,3]: 2 prvek [2,4]: 3 prvek [2,5]: 4 prvek [2,6]: 5 prvek [2,7]: 6 prvek [3,1]: 7 prvek [3,2]: 7 prvek [3,3]: 6 prvek [3,4]: 5 prvek [3,5]: 4 prvek [3,6]: 3 prvek [3,7]: 2 prvek [4,1]: 1 prvek [4,2]: 0 prvek [4,3]: 1 prvek [4,4]: 2 prvek [4,5]: 3 prvek [4,6]: 4 prvek [4,7]: 5 prvek [5,1]: 6 prvek [5,2]: 7 prvek [5,3]: 8 prvek [5,4]: 9 prvek [5,5]: 9 prvek [5,6]: 8 prvek [5,7]: 7 prvek [6,1]: 4 prvek [6,2]: 5 prvek [6,3]: 6 prvek [6,4]: 1 prvek [6,5]: 2 prvek [6,6]: 3 prvek [6,7]: 1 prvek [7,1]: 2 prvek [7,2]: 3 prvek [7,3]: 0 prvek [7,4]: 1 prvek [7,5]: 2 prvek [7,6]: 3 prvek [7,7]: 4 Zadana matice: 1 -1 2 -2 3 -3 4 0 1 2 3 4 5 6 7 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 9 8 7 4 5 6 1 2 3 1 2 3 0 1 2 3 4 Upravena matice: 1 0 2 -2 3 0 4 0 1 0 3 0 5 0 7 0 6 0 4 0 2 1 0 0 2 0 4 5 6 0 8 0 9 0 7 0 5 0 1 0 3 0 2 0 0 1 2 0 4 % ------------------------------- prumer_z_predchoziho % funkce prumer_z_predchoziho.m % viz http://home.zcu.cz/~lsroubov/PPEL % Vytvoří matici, jejíž každý prvek je průměrnou hodnotou z prvků, % které leží nad ním ve dvou předchozích řádcích ve stejném sloupci. % První dva řádky matice jsou zadány uživatelem. % V m-file je navíc ošetřeno zadávání - matice může % mít maximálně velikost 20x7 a minimálně 3x1. % uživatel zadá "r", "s" a prvky prvních dvou řádků matice Zadejte rozmery matice (matice muze mit velikost maximalne 20x7, minimalne 3x1): Zadej pocet radku matice: r = 7 Zadej pocet sloupcu matice: s = 3 Zadej prvky v prvnich 2 radcich matice: prvek [1,1]: 5 prvek [1,2]: 3 prvek [1,3]: 1 prvek [2,1]: 1 prvek [2,2]: 2 prvek [2,3]: 1 Zadane 2 radky matice: 5 3 1 1 2 1 Vytvorena matice: 5 3 1 1 2 1 3 2.5 1 2 2.25 1 2.5 2.375 1 2.25 2.3125 1 2.375 2.3438 1