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.
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);
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);