Postavka problema

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.

Matrica proizvoljnih dimenzija i vrednosti

pomocna.m
% 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.

Glavna skripta

glavna.m
% 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)

1) size vraca vektor ciji je prvi clan broj vrsta, a drugi broj kolona
2) Prosirenje matrice se moze vrsiti po kolonama ili vrstama. Prosirenje po vrstama matrice M vektorom v vrsi se kao
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.
 
zadatak_2.txt · Last modified: 2012/02/03 14:38 by milos.simic
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki