Za datu matricu (proizvoljnih dimenzija) u datoteci matrica.txt, odrediti za svaku kolonu njenu srednju, minimalnu i maksimalnu vrednost. Zatim za svaku kolonu odrediti koliko se srednja vrednost kolone razlikuje od aritmetičke sredine minimalne i maksimalne vrednosti i te rezultate upisati u datoteku odstupanje.txt.
% Generisanje matrice proizvoljnih dimenzija a=round(100-99*rand(1,1)) % broj vrsta b=round(100-99*rand(1,1)) % vroj kolona M=100-99*rand(a,b); save matrica.txt a b M
Koristili smo se funkcijom rand kako bismo zaokruglili dobijeni broj, posto matrica ne moze imati razlomljen broj vrsta ni kolona.
% Ucitavanje matrice proizvoljnih dimenzija % i prikazivanje iste load matrica.txt a b M a b vektor=[]; domen=1:1:b; for i=domen kolona=M(:,i); minimum=min(kolona); maksimum=max(kolona); asrmm=(minimum+maksimum)/2; prosek=mean(kolona); vektor=[vektor abs(prosek-asrmm)]; end plot(domen,vektor,'rv'); xlabel('Kolona'); ylabel('Razlika'); legend('Odstupanjе u kolonama','Location','Northeast'); grid on % moze se i odstraniti
Primetimo da smo, pored matrice, ucitali i njene dimenzije. To nije neophodno, jer se one funkcijom size1) mogu saznati.
Svaku kolonu matrice M smo upisali u vektor kolona naredbom
kolona=M(:,i)
, a prosecnu, najmanju i najvecu vrednost pronasli upotrebom funkcija mean,min i max. Trazeno odstupanje upisali smo u vektor nacinom prosirivanja. Naime, ako je v vektor, a m neki broj, taj broj se moze dodati datom vektoru sledecim prosirenjem:
v = [v m]
.2)
M = [M; v], pri cemu broj kolona M i v mora biti isti. Analogno i za prosirenje po kolonama,
M = [M v], pri cemu M i v moraju imati isti broj vrsta.