This shows you the differences between two versions of the page.
zadatak2 [2012/02/05 02:28] simona.vujic created |
zadatak2 [2012/02/05 03:21] (current) simona.vujic |
||
---|---|---|---|
Line 6: | Line 6: | ||
=== Rešenje === | === 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. | ||
+ | <code> | ||
+ | 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); | ||
+ | </code> | ||
+ | == 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//. | ||
+ | <code> | ||
+ | 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); | ||
+ | </code> |