Zadatak2

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 odstupanje.txt datoteku.

Rešenje

Generisanje datoteke matrica.txt

Pošto je u zadatku navedeno da matrica treba biti proizvoljnih dimenzija, koristićemo funkciju rand() da odredi broj vrsta i broj kolona matrice koju ćemo upamtiti u datoteci matrica.txt (mogu biti vrednosti od 1 do 10). Takođe, pomoću funkcije rand() određujemo i vrednosti te matrice. Koristimo i funkciju ceil kako bi vrednosti koje funkcija rand() vrati, za dimenzije matrice, bile celobrojne.

br = ceil(10 - 9 * rand());
bk = ceil(10 - 9 * rand());
M = 100 - 99 * rand(br,bk);
file = fopen('matrica.txt','w');
for i = 1 : br,
for j = 1 : bk,
fprintf(file,"%.2f ",M(i,j));
end
fprintf("\n");
end
fclose(file);
Rešavanje problema

Prvo što treba uraditi jeste učitati podatke iz datoteke matrica.txt . Zatim treba za svaku kolonu pojedinačno odrediti njen minimalni element(funkcijom min), maksimalni element(funkcijom max) i srednju vrednost te kolone(funkcijom mean). Zatim izračunavamo aritmetičku sredinu minimalne i maksimalne vrednosti kolone i nju upoređujemo sa srednjom vrednošću (računamo njihovu razliku). Tu vrednost upisujemo u datoteku odstupanje.txt.

A = load('matrica.txt');
bv = size(A,1);
bk = size(A,2);
file = fopen("odstupanje.txt","w");
for i = 1 : bk,
kolona = A(:,i);
maks = max(kolona);
min = min(kolona);
sr_vr = mean(kolona);
ar_s = (maks + min) / 2;
raz(i) = ar_s - sr_vr;
fprintf(file,"%.2f",raz(i));
end
plot(raz);
title('Odstupanje srednje vrednosti od aritmeticke sredine');
legend('odstupanje','Location','Northeast');
xlabel('x');
ylabel('odstupanje');
fclose(file);
 
zadatak2.txt · Last modified: 2012/02/05 03:21 by simona.vujic
 
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