Prvi zadatak

Date su datoteke analiza1.txt, analiza2.txt i analiza3.txt. Sve tri sadrže vrednosti neke 3 funkcije (svaka u svojoj datoteci) u tačkama , .01, .02, .03, … , 1. Učitati podatke iz ovih file-ova i nacrtati grafik(sa naslovom, legendom) koji pokazuje koliko se vrednosti prve i treće funkcije razlikuju od vrednosti druge u svakoj tački u kojoj ih imamo definisane. Rešenje dati u vidu m skripte. Pri tom napraviti i m skriptu za random generisanje datoteka sa vrednostima.

punjenje.m
# Broj tacaka u funkcijama ce biti jednak nekom od brojeva izmedju 1 i 51.
BrElemenata=ceil(1+50*rand(1));
# Tacke ce imati vrednost brojeva koji su izmedju 0 i 10
prva=10*rand(BrElemenata);
druga=10*rand(BrElemenata);
treca=10*rand(BrElemenata);
save analiza1.txt prva
save analiza2.txt druga
save analiza3.txt treca

Ovaj program puni datoteke analiza1.txt,analiza2.txt i analiza3.txt sa vrednostima.

zad1.m
punjenje
load analiza1.txt
load analiza2.txt
load analiza3.txt
x=druga-prva;
y=druga-treca;
plot(x(1:numel(x)),'r',y(1:numel(y)),'b')
title('Funkcije')
legend('Razlika izmedju druge i prve','Razlika izmedju druge i trece')

Ovaj program uzima podatke iz analiza1.txt,analiza2.txt i analiza3.txt i crta grafik kao što je traženo u zadatku i to sve uz pomoć funkcije 'plot','title' postavlja naslov grafika, a 'legend' postavlja legendu o tome šta koji grafik predstavlja.

Drugi zadatak

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.

zad2.m
load matrica.txt
A=matrica;
vrste=size(A,1);
kolone=size(A,2);
for j = 1:kolone,
maksimum(j) = max(A(:,j));
minimum(j) = min(A(:,j));
srednja(j) = sum(A(:,j))/vrste;
odstupanje(j)=srednja(j)-((maksimum(j)+minimum(j))/2);
end
recenica1="Maksimalni elementi kolona su:";
recenica2="Minimalni elementi kolona su:";
recenica3="Srednje vrednosti elemenata kolona su:";
recenica4="Razlike izmedju srednjih vrednosti elemenata i aritmetickih sredina maksimalnih i minimalnih elemenata kolona su:";
save odstupanje.txt recenica1 maksimum recenica2 minimum recenica3 srednja recenica4 odstupanje

Ovaj program rešava problem iz drugog zadatka, korišćenjem 'for' petlje i funkcija 'max','min' i 'sum'.

Treci zadtak

Neka su date 3 ulazne datoteke, ulaz1.txt, ulaz2.txt i ulaz3.txt gde svaka sadrži isti broj vrednosti u decimalnom zapisu koje su rezultati nekog eksperimenta. Vrednosti ima onoliko koliko je bilo vremenskih trenutaka u kojima je vrednost posmatrana. Odrediti aritmetičku srednju vrednost za svaki vremenski trenutak na osnovu vrednosti u sve 3 datoteke. Zatim odrediti koja datoteka sadrži najviše vrednosti koji su najudaljenije od srednje vrednosti (vrednost se najviše razlikuje). Primer : Neka ima 1000 vrednosti u svakoj datoteci. Ako se desilo da u prvoj ima 340, u drugoj 450 i trećoj 210 vrednosti koje su najviše udaljene od srednje vrednosti u trenutku posmatranja, onda ispisujemo ime datoteke ulaz2.txt.

octaveMat.m
n=ceil(1000*rand(1));
ulaz1=rand(n,1);
save ulaz1.txt
ulaz2=rand(n,1);
save ulaz2.txt
ulaz3=rand(n,1);
save ulaz3.txt

U ovom programu punimo datoteke sa vrednostima. Maksimalan broj elemenata u jednoj datoteci je ovde postavljen na 1000 ali može biti i veći ili manji (dovoljno je u prvom redu programa umesto 1000 staviti neki drugi broj koji ce biti graničnik).

zad3.m
octaveMat
load ulaz1.txt;
load ulaz2.txt;
load ulaz3.txt;
n=size(ulaz1,1);
sred(1)=sum(ulaz1)/numel(ulaz1);
sred(2)=sum(ulaz2)/numel(ulaz2);
sred(3)=sum(ulaz3)/numel(ulaz3);
br(1)=0;
br(2)=0;
br(3)=0;
for i = 1:n,
if ulaz1(i)>sred(1),
br(1)++;
end
end
for i = 1:n,
if ulaz2(i)>sred(2),
br(2)++;
end
end
for i = 1:n,
if ulaz3(i)>sred(3),
br(3)++;
end
end
maksimum = max(br);
if maksimum == br(1),
printf("Ulaz1.txt\n");
elseif maksimum == br(2),
printf("Ulaz2.txt\n");
else
printf("Ulaz3.txt\n");
end

U ovom programu prvo učitavamo podatke iz datoteka, a zatim računamo srednje vrednosti elemenata svake datoteke i smeštamo ih u vektor sred. Nakon toga za svaku datoteku određujemo broj onih elemenata koji su veći od srednje vrednosti i smeštamo ih u vektor br. Na kraju tražimo maksimum od elemenata iz vektora br, i ispisujemo naziv datoteke koja odgovara tom maksimumu.

Nazad

 
octave.txt · Last modified: 2012/02/07 07:33 by mihajlo.djordevic
 
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