% 3. cviceni z predmetu PPEL - MATLAB (3*(5+3)+2*(9-3))/4 % pokud prikaz nepriradime do vlastni promenne, vysledek je ulozen do promenne ans ans = 9 a=(3*(5+3)+2*(9-3))/4 % vysledek je ulozen do promenne a a = 9 Promena_v_MATLABu=1 % promenne v MATLABu musi mit nazev zacinajici pismenem, muze byt az 31 znaku dlouhy % lze vyuzivat pismena, cisla a znak "podtrzitko", tj. _ Promena_v_MATLABu = 1 pi % pi ma prirazenu hodnotu Ludolfova cisla (3.14) % do promenne ans se uklada vysledek pokud neuvedeme vlastni promennou ans = 3.1416 i % i je preddefinovano jako komplexni jednotka ans = 0 + 1.0000i j % j je rovnez vyhrazeno pro komplexni jednotku ans = 0 + 1.0000i 1/0 % Inf je nekonecno Warning: Divide by zero. ans = Inf 0/0 % NaN je neplatna numericka hodnota Warning: Divide by zero. ans = NaN b=[1,2,3] % radkovy vektor, tj. matice 1x3, prvky oddeleny carkou b = 1 2 3 c=[5;6;7] % sloupcovy vektor, tj. matice 3x1, prvky oddeleny strednikem c = 5 6 7 A=[1,2,3;5,6,7] % matice 2x3, prvky v radku oddeleny carkou (lze i mezerou), radky v matici oddeleny strednikem A = 1 2 3 5 6 7 c' % transpozice vektoru c ans = 5 6 7 A_1=[b;c'] % matice stejna jako A, lze ji vytvorit i jako vektor vektoru, radky v matici oddeleny strednikem A_1 = 1 2 3 5 6 7 B=[5,5;6,6;7,7] % matice 3x2, prvky v radku oddeleny carkou, radky v matici oddeleny strednikem B = 5 5 6 6 7 7 B_1=[c,c] % matice stejna jako B, vytvorena jako vektor vektoru, sloupcove vektory v matici oddeleny carkou B_1 = 5 5 6 6 7 7 d=[1,2] % radkovy vektor s prvky 1,2 d = 1 2 B_2=[c,c;d] % k matici B pridame vektor d % matice vytvorena jako vektor vektoru, sloupcove vektory v matici oddeleny carkou, radky oddeleny strednikem B_2 = 5 5 6 6 7 7 1 2 B_3=[B;d] % matice stejna jako B_2, ale vytvorena z matice B a vektoru d, radkek v matici B_3 oddelen strednikem B_3 = 5 5 6 6 7 7 1 2 C=[1+i,1-i;2+2i,-4-5i;3+i,-6+i] % matice komplexnich cisel 3x2 % prvky v radku oddeleny carkou ,radky v matici oddeleny strednikem C = 1.0000 + 1.0000i 1.0000 - 1.0000i 2.0000 + 2.0000i -4.0000 - 5.0000i 3.0000 + 1.0000i -6.0000 + 1.0000i B_2 % matice realnych cisel 4x2 (vznikla drive, zde pro pripomenuti) B_2 = 5 5 6 6 7 7 1 2 B_2' % transponovana matice realnych cisel ans = 5 6 7 1 5 6 7 2 C' % prikaz ' pouzit pro matici komplexnich cisel C % adjungovaná matice (transponovaná matice s komplexne sdruzenymi cisly) ans = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 1.0000i 1.0000 + 1.0000i -4.0000 + 5.0000i -6.0000 - 1.0000i C.' % prikaz .' provadi prostou transpozici matice s komplexnimi cisly ans = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 1.0000i 1.0000 - 1.0000i -4.0000 - 5.0000i -6.0000 + 1.0000i d=[1:1:10] % vektor obsahujici radu cisel od 1 do 10 s krokem 1 % vektor d je vyjadren jako [pocatek : krok : konec] d = 1 2 3 4 5 6 7 8 9 10 d=[1:10] % pokud je velikost kroku rovna 1, neni potreba jej uvadet d = 1 2 3 4 5 6 7 8 9 10 e=[10:-1:1] % vektor obsahujici radu cisel od 10 do 1 s krokem -1 e = 10 9 8 7 6 5 4 3 2 1 f=[4:2:22] % vektor obsahujici radu cisel od 4 do 22 s krokem 2 f = 4 6 8 10 12 14 16 18 20 22 g=[1:0.5:5] % vektor obsahujici radu cisel od 1 do 5 s krokem 0.5 g = 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 F=[d;e;f] % matice F 3x10 vytvorena jako vektor vektoru F = 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 4 6 8 10 12 14 16 18 20 22 size(F) % rozměr matice F (pocet radku, pocet sloupcu) ulozeny do promenne ans ans = 3 10 v=size(F) % rozměr matice F (pocet radku, pocet sloupcu) ulozeny do promenne v v = 3 10 size(v) % rozměr vektoru v (pocet radku, pocet sloupcu) ulozeny do promenne ans ans = 1 2 [r,s]=size(F) % rozměr matice F, do promenne r ulozen pocet radku, do promenne s pocet sloupcu r = 3 s = 10 length(v) % zjisteni poctu prvku vektoru v, ulozi se do promenne ans ans = 2 length(d) % pocet prvku vektoru d ulozen do promenne ans ans = 10 length(e) % pocet prvku vektoru e ulozen do promenne ans ans = 10 length(g) % pocet prvku vektoru g ulozen do promenne ans ans = 9 length(F) % prikaz length pouzit na matici F, do promenne ans se ulozi vetsi rozmer matice ans = 10 G=F' % transponovana matice F se ulozi do matice G G = 1 10 4 2 9 6 3 8 8 4 7 10 5 6 12 6 5 14 7 4 16 8 3 18 9 2 20 10 1 22 size(G) % zjisteni rozměru matice G (pocet radku, pocet sloupcu), ulozeny do promenne ans ans = 10 3 length(G) % prikaz length pouzit na matici G, do promenne ans se ulozi vetsi rozmer matice ans = 10 g=[1:0.5:5] % vektor g (vznikl jiz drive, zde pro pripomenuti) g = 1 1.5 2 2.5 3 3.5 4 4.5 5 g(7) % do promenne ans se ulozi hodnota 7.prvku vektoru g - v kulatych zavorkach () je index 7 ans = 4 F % matice F 3x10 (vznikla jiz drive, zde pro pripomenuti) F = 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 4 6 8 10 12 14 16 18 20 22 k=F(2,3) % do promenne k se priradi hodnota prvku z 2.radku a 3.sloupce matice F - indexy 2,3 k = 8 l=F(:,4) % do l se priradi 4.sloupec matice F (: na pozici radku znaci vsechy radky ze 4. sloupce) l = 4 7 10 m=F(2,:) % do m se priradi 2.radek matice F (: na pozici sloupce znaci vsechy sloupce z tohoto radku) m = 10 9 8 7 6 5 4 3 2 1 H=F(1:2,:) % do H se priradi 1. a 2.radek matice F (1:2 na pozici radek znamena od 1. do 2. radku) H = 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 I=F(:,6:8) % do I se priradi 6.az 8.sloupec matice F (6:8 na pozici sloupce znamena od 6. do 8.sloupce) I = 6 7 8 5 4 3 14 16 18 J=F(:,[2,5,7]) % do J se priradi 2.,5,a 7.sloupec matice F (vektor na pozici sloupce značí, které sloupce budou vybrány) J = 2 5 7 9 6 4 6 12 16 K=F(:,2:2:10) % v K bude 2.,4.,6.,8.a 10.sloupec matice F (2:2:10 na pozici sloupce znamena od 2.do 10.sloupce s krokem 2) K = 2 4 6 8 10 9 7 5 3 1 6 10 14 18 22 L=F(1:2,[5,9]) % do L se priradi část matice F vymezena 1.a 2.radkem a 5.a 9. sloupcem L = 5 9 6 2 F % matice F 3x10 (vznikla jiz drive, zde pro pripomenuti) F = 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 4 6 8 10 12 14 16 18 20 22 F(:,10)=[] % odstraneni 10. sloupce (nahrazeni prazdnym vektorem) F = 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 4 6 8 10 12 14 16 18 20 F(3,:)=[] % odstraneni 3.radku (nahrazeni prazdnym vektorem) F = 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 F(:,[4,8])=[] % nahrazeni 4.a 8.sloupce prazdnymi vektory (odstraneni 4.a 8.sloupce) F = 1 2 3 5 6 7 9 10 9 8 6 5 4 2 size(F) % zjisteni rozmeru matice F (je mensi o 1 radek a 3 sloupce) oproti původní velikosti ans = 2 7 M=F(2,5:end) % do M se priradi část matice F vymezena 2.radkem a 5. az poslednim sloupecem M = 5 4 2 N=zeros(2,3) % matice 2x3 naplnena nulami N = 0 0 0 0 0 0 P=ones(3,2) % matice 3x2 naplnena jednickami P = 1 1 1 1 1 1 Q=eye(3) % jednotkova ctvercova matice 3x3 (na hlavni diagonále jednicky) Q = 1 0 0 0 1 0 0 0 1 X=rand(5,7) % matice 5x7 naplnena nahodnymi cisly z intervalu (0,1) X = 0.9501 0.7621 0.6154 0.4057 0.0579 0.2028 0.0153 0.2311 0.4565 0.7919 0.9355 0.3529 0.1987 0.7468 0.6068 0.0185 0.9218 0.9169 0.8132 0.6038 0.4451 0.4860 0.8214 0.7382 0.4103 0.0099 0.2722 0.9318 0.8913 0.4447 0.1763 0.8936 0.1389 0.1988 0.4660 X=rand(1,7) % vektor naplneny nahodnymi cisly z intervalu (0,1) X = 0.4186 0.8462 0.5252 0.2026 0.6721 0.8381 0.0196 x=rand(1,1) % nahodne cislo z intervalu (0,1) x = 0.6813 R=pascal(4) % Pascaluv trojuhelnik R = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 S=magic(7) % "magicka" matice - magicky ctverec % soucet prvku na diagonale je stejny jako soucet prvku v jednotlivych sloupcich matice S = 30 39 48 1 10 19 28 38 47 7 9 18 27 29 46 6 8 17 26 35 37 5 14 16 25 34 36 45 13 15 24 33 42 44 4 21 23 32 41 43 3 12 22 31 40 49 2 11 20 sum(S) % soucet prvku v jednotlivych sloupcich ans = 175 175 175 175 175 175 175 diag(S) % hodnoty na hlavni diagonale matice S ans = 30 47 8 25 42 3 20 sum(diag(S)) % soucet prvku na hlavni diagonale matice S ans = 175 A=[1,2,3;4,5,6;7,8,9] % matice 3x3, prvky v radku oddeleny carkou, radky v matici oddeleny strednikem A = 1 2 3 4 5 6 7 8 9 A=[1,2,3;4,5,6;7,8,9]; % strednik za prikazem zabrani vypisu vysledku na obrazovku t='retezec v MATLABu' % zadani retezce t = retezec v MATLABu t(1:7) % podobne jako u matic lze pouzit indexy ans = retezec t(17:-1:11) % podobne jako u matic lze pouzit indexy i se záporným krokem ans = uBALTAM u='Je zadan ' % zadani dalsiho retezce u = Je zadan w=[u,t,'.'] % do w je prirazeno spojeni 3 retezcu (u,t a retezce zadaneho bez pouziti promenne '.', obsahujiciho jen .) w = Je zadan retezec v MATLABu. who % vypise seznam existujicich promennych v pracovnim prostoru Your variables are: A L S e s B M X f t C N a g u F P ans k v G Promena_V_Matlabu b l w H Q c m x I R d r whos % vypise seznam existujicich promennych vcetne rozmeru, obsazene pameti a tridy Name Size Bytes Class A 3x3 72 double array B 4x2 64 double array C 3x2 96 double array (complex) F 2x7 112 double array G 3x5 120 double array H 2x10 160 double array I 3x5 120 double array L 2x2 32 double array M 1x3 24 double array N 2x3 48 double array P 3x2 48 double array Promena_V_Matlabu 1x1 8 double array Q 3x3 72 double array R 4x4 128 double array S 7x7 392 double array X 1x7 56 double array a 1x1 16 double array (complex) ans 1x7 14 char array b 1x3 24 double array c 3x1 24 double array d 1x10 80 double array e 1x10 80 double array f 1x10 80 double array g 1x9 72 double array k 1x1 8 double array l 3x1 24 double array m 1x10 80 double array r 1x1 8 double array s 1x1 8 double array t 1x17 34 char array u 1x9 18 char array v 1x2 16 double array w 1x27 54 char array x 1x1 8 double array Grand total is 277 elements using 2128 bytes clear a % odstraneni promenne a whos % vypise seznam existujicich promennych (uz bez promenne a) Name Size Bytes Class A 3x3 72 double array B 4x2 64 double array C 3x2 96 double array (complex) F 2x7 112 double array G 3x5 120 double array H 2x10 160 double array I 3x5 120 double array L 2x2 32 double array M 1x3 24 double array N 2x3 48 double array P 3x2 48 double array Promena_V_Matlabu 1x1 8 double array Q 3x3 72 double array R 4x4 128 double array S 7x7 392 double array X 1x7 56 double array ans 1x7 14 char array b 1x3 24 double array c 3x1 24 double array d 1x10 80 double array e 1x10 80 double array f 1x10 80 double array g 1x9 72 double array k 1x1 8 double array l 3x1 24 double array m 1x10 80 double array r 1x1 8 double array s 1x1 8 double array t 1x17 34 char array u 1x9 18 char array v 1x2 16 double array w 1x27 54 char array x 1x1 8 double array Grand total is 276 elements using 2112 bytes clear % odstraneni vsech promennych A=[1,2,3;4,5,6;7,8,9] % matice 3x3, prvky v radku oddeleny carkou, radky v matici oddeleny strednikem A = 1 2 3 4 5 6 7 8 9 format long % zobrazeni na 14 desetinnych mist 12/7 % priklad, vysledek se ulozi do promenne ans ans = 1.71428571428571 format rat % zobrazeni ve tvaru zlomku 4/16 % priklad, vysledek se ulozi do promenne ans ans = 1/4 pi % priklad zobrazeni pi ve zlomku, vysledek se ulozi do promenne ans ans = 355/113 format short % zobrazeni na 4 desetinna mista 2:2:8 % vektor obsahujici radu cisel od 2 do 8 s krokem 2 % [pocatek : krok : konec] ans = 2 4 6 8 linspace(2,8,6) % jiny zpusob utvareni ciselne rady, potrebujeme-li zadat 6 hodnot mezi cisly 2 a 8 % linspace (pocatek, konec, pocet bodu) ans = 2.0000 3.2000 4.4000 5.6000 6.8000 8.0000 [2:1.2:8] % stejny vektor vektor obsahujici radu cisel od 2 do 8 s krokem 1.2 vytvoreny jako [pocatek : krok : konec] % nekdy je obtizne zjistit krok a je vhodne vyuzit funkci linspace (kde se krok urci sam z delky rady) ans = 2.0000 3.2000 4.4000 5.6000 6.8000 8.0000 [2:(1+0.2):8] % stejny vektor vektor obsahujici radu cisel od 2 do 8 s krokem 1.2 % krok 1.2 muze byt zadan i matematickym vyrazem ans = 2.0000 3.2000 4.4000 5.6000 6.8000 8.0000 logspace(0,1,6) % vytvoreni rady s logaritmickym delenim pomoci funkce logspace % logspace (pocatek, konec, pocet bodu) % podobna funkce jako linspace ans = 1 1.5849 2.5119 3.9811 6.3096 10 N=ones(3) % matice 3x3 naplnena jednickami N = 1 1 1 1 1 1 1 1 1 A % matice A 3x3 (vznikla jiz drive, zde pro pripomenuti) A = 1 2 3 4 5 6 7 8 9 A+N % scitani matic (scitaji se prvky na stejnych pozicich) ans = 2 3 4 5 6 7 8 9 10 B=A+N % scitani matic B = 2 3 4 5 6 7 8 9 10 C=B-A % odcitani matic (odcitaji se prvky matice A od prvku matice B na stejnych pozicich) C = 1 1 1 1 1 1 1 1 1 diary off % prerusi ukladani do textoveho souboru