Jokainen ihminen aloittaa kokeilut näin (voit osoittaa omaperäisyytesi tekemällä muuta).
>> A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> A(1,:) % 1. rivi (sarakeindeksi saa kaikki arvonsa) ans = 1 2 3 >> A(:,1) % 1. sarake (rivi-indeksi saa kaikki arvonsa) ans = 1 4 7 >> A(:) % Kukin indeksi saa kaikki arvonsa (sarakejärjestyksessä). % (Matriisi jonoutetaan sarakkeittain pitkäksi vektoriksi.) ans = 1 4 7 2 5 8 3 6 9 >> reshape(ans,3,3) % Muotoillaan takaisin 3x3-matriisiksi. ans = % (A ei muutu, tulos vain näytetään, kuten % edelläkin.) 1 2 3 4 5 6 7 8 9 >> A(1:2,2:3) % Osamatriisi. ans = 2 3 5 6 >>
>> B=[A [1;1;1]] % Liitetään A:n perään sarake (tai useampi). B = 1 2 3 1 4 5 6 1 7 8 9 1 >> [m,n]=size(B) % Kätevä tapa muodostaa "koko"-muuttujat. m = 3 n = 4 >> C=[B;ones(1,n)] % Liitetään alle, ykkösiä saa ones-funktiolla. C = 1 2 3 1 4 5 6 1 7 8 9 1 1 1 1 1
>> asteet=(0:10:90)'; % Asteissa 10:n välein, >> % transponoimalla pystyyn. >> rad=pi*asteet/180; % Radiaaneiksi. >> taulukko=[asteet rad cos(rad) sin(rad)] taulukko = 0 0 1.0000 0 10.0000 0.1745 0.9848 0.1736 20.0000 0.3491 0.9397 0.3420 30.0000 0.5236 0.8660 0.5000 40.0000 0.6981 0.7660 0.6428 50.0000 0.8727 0.6428 0.7660 60.0000 1.0472 0.5000 0.8660 70.0000 1.2217 0.3420 0.9397 80.0000 1.3963 0.1736 0.9848 90.0000 1.5708 0.0000 1.0000Tehtävä: Poimi yllä olevasta taulukosta 2. ja 3. sarake, ts, kulmat radiaaneissa ja vastaavat cos-arvot. Piirrä taulukkopisteet vaikka o-merkeillä ja suorita graafisesti lineaarinen interpolaatio taulukkopisteiden välillä eli piirrä taulukkopisteiden kautta murtoviiva samaan kuvaan. Laske taulukkopisteitä käyttäen cos:n arvojen likiarvot pisteissä, jotka ...
Esim.
>> A=ones(2,4) A = 1 1 1 1 1 1 1 1 >> B=A' B = 1 1 1 1 1 1 1 1 >> A*B % Matriisitulo ans = 4 4 4 4 >> B*A % kuin myös. ans = 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
>> A=reshape(1:9,3,3)' % "Jokapojan/tytön matriisi" elegantimmin. A = 1 2 3 4 5 6 7 8 9 >> A*A % Neliömatriisi voidaan kertoa itsellään. ans = 30 36 42 66 81 96 102 126 150 >> A^2 % Sama asia. ans = 30 36 42 66 81 96 102 126 150 >> A.*A % Pisteittäinen tulo (ei vaadi neliömatriisia). ans = 1 4 9 16 25 36 49 64 81 >> A.^2 % Ja sama. ans = 1 4 9 16 25 36 49 64 81Tehtävä Muodosta jokin matriisi A, jonka alkiot > 0 (vaikkapa se jokapojantytön).
>> A=[2 -1 0 0; -1 2 -1 0;0 -1 2 -1;0 0 -1 2] A = 2 -1 0 0 -1 2 -1 0 0 -1 2 -1 0 0 -1 2Vähänkin isomman matriisin (tiheämmän diskretoinnin) tapauksessa riveittäin muodostaminen on vaivalloista. Funktio diag tarjoaa hyvän keinon.
>> N=4 >> osa1=2*eye(N,N) % eye muodostaa yksikkömatriisin. osa1 = 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 >> osa2=diag(-ones(1,N-1),1) % päälävistäjän yläpuolinen lävistäjä osa2 = 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 >> osa3=diag(-ones(1,N-1),-1) % päälävistäjän alapuolinen lävistäjä osa3 = 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 >> A=osa1+osa2+osa3 A = 2 -1 0 0 -1 2 -1 0 0 -1 2 -1 0 0 -1 2 >> diag(A) % Lopuksi näytetään, että diag toimii myös toiseen suuntaan: % poimii matrisiisin päälävistäjän. ans = 2 2 2 2