You are on page 1of 10

1. Zadatak 1 (15 bod.

)
Napisati MATLAB funkciju z1.m kod koje je ulaz matrica A dimenzija nxn (n>4 i n je neparan
broj). Funkcija kreira matricu B dimenzija nxn čiji su elementi nasumično kreirani prirodni
brojevi iz intervala [3, 9], osim elemenata glavne dijagonale koji su jednaki elementima
sporedne dijagonale matrice A, i matricu C kao rezultat množenja po elementima matrica
nastalih rotacijom matrice A udesno za 90 0 i ulijevo za 90 0 , s centrom rotacije u presjeku
dijagonala
matrice A. Funkcija vraća vektor čiji su elementi, redom: proizvod elemenata s dijagonale
ispod sporedne dijagonale matrice B, zbir svih parnih elemenata matrice C, broj elemenata
ulazne matrice većih od 5 U ostalim slučajevima funkcija javlja grešku.
__________________________________________________________________________
%z1.m
function [x y z]=z1(A)
if(length(A)<=4 | mod(length(A),2)==0) 
 error(‘nisu uredu parametri’);
end
n=length(A)
B=round(rand(n,n)*6+3);
B(1:n+1:n*n)=0
K=diag(fliplr(A));
B=diag(K)+B;
R=rot90(A)
L=rot90(A,-1)
C=R.*L
x=prod(diag(fliplr(B),-1));
y=sum(C(find(mod(C,2)==0)))
z=length(find(A>5));
rez=[x y z]
end
2. Zadatak 1 (15 bod.)
Napisati MATLAB funkciju zadatak1.m koja uzima prirodan broj n veći od 3, a vraća matricu
y dimenzija 5x5. Prvi red matrice y sadrži nasumično kreirane vrijednosti od 0 do n, drugi red
matrice sadrži linearno raspoređene vrijednosti od 1 do n, treći red matrice sadrži sve
elemente jednake n/3, četvrti red matrice sadrži sve elemente jednake n^2 , a peti red sadrži
sumu elemenata po kolonama prva četiri reda matrice y. Funkcija ispisuje na ekranu: broj
elemenata matrice y manjih od 5n, elemente sporedne dijagonale matrice y, proizvod svih
elemenata matrice y, matricu A sa elementima koji se nalaze u presjeku prvog, trećeg i petog
reda i druge
i četvrte kolone matrice y, transponovanu matricu A. U ostalim slučajevima funkcija javlja
grešku:

>> zadatak1
Error using zadatak1 (line 3)
Funkcija ima jedan ulazni argument
zadatak1(2)
Error using zadatak1 (line 6)
Funkcija ima jedan izlazni argument
m=zadatak1(2)
Error using zadatak1 (line 9)
Ulazni argument mora biti veći od 3

__________________________________________________________________________
____
%zadatak1.m
Function [y]=zadatak1(n)
n=input(‘unesite broj n’);
If (n<=3) error(‘ulazni parametar mora biti veci od broja 3’);
End

y=zeros(5,5);
y(1,:)=round(n*rand(1,5)+0);
y(2,:)=linspace(1,n,5);
y(3,:)=n/3;
y(4,:)=n*n;
y(5,:)=[sum(y(1:4,1)) sum(y(1:4,2)) sum(y(1:4,3)) sum(y(1:4,4)) sum(y(1:4,5))]
length(find(y<5*n))
diag(fliplr(y))
P=prod(y)
P1=prod(P)
A=y([1 3 5], [2 4])
A’
3. Napisati MATLAB funkciju z1.m kod koje je ulaz matrica A dimenzija nxn (n>2 i n je
neparan broj). Funkcija kreira matricu B dimenzija nxn čiji su elementi nasumično
kreirani prirodni brojevi iz intervala [5, 15], osim elemenata sporedne dijagonale koji su
jednaki elementima sporedne dijagonale matrice A i matricu C kao rezultat množenja po
elementima matrica nastalih rotacijom matrice A udesno za 900 i ulijevo za 900 sa
centrom rotacije u presjeku dijagonala matrice A. Izlaz iz funkcije je matrica D čiji su svi
rubni elementi jednaki zbiru elemenata vektora ''vrhova'' matrice A+B-C (pod vrhom
matrice se podrazumijeva element matrice koji je vedi od zbira njegovih najbližih
susjednih elemenata koji ga okružuju), a sporednu dijagonalu submatrice čine elementi
vektora X čiji su redom elementi:  
 proizvod elemenata koji se nalaze na dijagonali iznad sporedne dijagonale matrice A i
elemenata na dijagonali ispod sporedne dijagonale matrice B 
 zbir svih parnih elemenata matrica A, B i C  
 ukupan broj elemenata matrica A, B i C koji su manji od 10  
 proizvod najmanjeg elementa matrice B i najvedeg elementa matrice C. 
U ostalim slučajevima funkcija javlja grešku.
__________________________________________________________________________
__

function D = z1(A) 
if nargin ~= 1 
error('Funkcija ima jedan ulazni argument') 
end 
if nargout ~= 1 
error('Funkcija ima jedan izlazni argument') 
end 
[m,n]=size(A); 
if m~=n 
error('Dimenzije matrice moraju biti nxn') 
end 
if n<3 || mod(n,2)==0 
error('Dimenzije matrice moraju biti veće od 2 i n je neparan broj') 
end 
b1=round(rand(n)*10+5); 
b2=fliplr(diag(diag(fliplr(A)))); 
b3=fliplr(diag(diag(fliplr(b1)))); 
B=b1+b2-b3 
C=flipud(A)'.*fliplr(A)' 
M=zeros(length(A+B-C)+2); 
M(2:end-1,2:end-1)=A+B-C; 
v=[]; 
for i=2:length(M)-1 
for j=2:length(M)-1 
if 2*M(i,j)>sum(sum(M(i-1:i+1,j-1:j+1))) 
v(end+1)=M(i,j); 
end 
end 
end 
s=sum(v); 
x1=prod(diag(fliplr(A),1))*prod(diag(fliplr(B),-1)); 
x2=sum(A(find(mod(A,2)==0)))+sum(B(find(mod(B,2)==0)))+sum(C(find(mod(C,2)==0))); 
x3=length(find([A,B,C]<10)); x4=min(min(B))*max(max(C)); 
X=[x1 x2 x3 x4]; 
D=s*ones(length(X)+2); 
D(end-1:-1:2,2:end-1)=diag(X)
4. zad
a. Napisati MATLAB funkciju koja uzima tri cijela broja n,m,k, a vraca matricu y
dimenzija nxm.Matrica treba sadrzavati proizvoljno kreirane vrijednosti, stepenovane
brojem k. Ispisati na ekranu broj kojim se stepenuje matrica, te matricu prije i nakon
stepenovanja.
b. Napisati MATLAB funkciju koja na jednom grafikonu crta povrsinu z=sinx+cosy, a na
drugom njen kvadratni korijen, gdje su x od 1 do 100 i y od 1 do 100. Ulazi u funkciju
su varijable x i y kao vektori, te povrsina zapisana kao string. Grafikone prikazati u
istom prozoru, jedna pored drugog. Povrsinu crtati narandzasto-cveno-zutom paletom
boja. Postaviti naslove grafikona i nazive osa. Funkcija ne vraca nista.
__________________________________________________________________________
_
a)
Function y=fja(n,m,k)
fprintf(‘k=%d’,k)
y=rand(n,m)
y1=y.^k

b) 
z1=’sin(x)+cos(y)’;
z2=’sqrt(sin(x)+cos(y))’
x=1:100;
y=1:100;

Function grafik(x,y,z1,z2)
[X Y]=meshgrid(x,y);
subplot(1,2,1);
z3=eval(z1);
surf(X,Y,z3);
colormap(hot);
title(‘sinx+cosy’);
xlabel(‘x-osa’);
ylabel(‘y-osa’)
zlabel(‘z-osa’);
subplot(1,2,2);
z4=eval(z2);
surf(X,Y,z4);
colormap(hot)
xlabel(‘x-osa’)
ylabel(‘y-osa’)
zlabel(‘z-osa’);
title(‘sqrt(sinx+cosx)’);
5. a)  Napisati MATLAB funkciju koja uzima tri cijela broja n,m,k, a vraca kvadratnu
matricu y dimenzija nxn.Matrica treba sadrzavati proizvoljno kreirane vrijednosti od 0 do m,
stepenovane brojem k. Ispisati na ekranu broj kojim se stepenuje matrica, te matricu prije i
nakon stepenovanja.
b) Napisati MATLAB funkciju koja na jednom grafikonu crta povrsinu z=sinx+cosx, a na
drugom njen kvadratni korijen, gdje su x od 1 do 100 i y od 1 do 100. Ulazi u funkciju su
varijable x i y kao vektori, te povrsina zapisana kao string. Grafikone prikazati u istom
prozoru, jedna pored drugog. Povrsinu crtati narandzasto-cveno-zutom paletom boja.
Postaviti naslove grafikona i nazive osa. Funkcija ne vraca nista.
__________________________________________________________________________
__
a)
Function y=fja(n,m,k)
fprintf(‘k=%d’,k)
y=rand(n,n)*m
y1=y.^k
b)
z1=’sin(x)+cos(y)’;
z2=’sqrt(sin(x)+cos(y))’
x=1:100;
y=1:100;

Function grafik(x,y,z1,z2)
[X Y]=meshgrid(x,y);
subplot(1,2,1);
z3=eval(z1);
surf(X,Y,z3);
colormap(hot);
title(‘sinx+cosy’);
xlabel(‘x-osa’);
ylabel(‘y-osa’)
zlabel(‘z-osa’);
subplot(1,2,2);
z4=eval(z2);
surf(X,Y,z4);
colormap(hot)
xlabel(‘x-osa’)
ylabel(‘y-osa’)
zlabel(‘z-osa’);
title(‘sqrt(sinx+cosx)’);
5. Napisati MATLAB funkciju koja uzima tri cijela broja n,m,k, a vraca matricu y
dimenzija nxm. Matrica treba sadrzavati nasumicno kreirane vrijednosti, stepenovane
brojem k. Ispisati na ekranu kojim brojem se stepenuje matrica, te ispisati matricu prije i
nakon stepenovanja. Naci indekse nenultih elementara u vracenoj matrici i ispisati ih.
Izvrsiti logicko poredjenje matrice jedinicnom matricom. Ako matrica ima paran broj
redova ukloniti dva srednja reda iz matrice, a ako je broj redova neparan, ukloniti srednji
red.

Function y=fja(n,m,k)
fprintf(‘k=%d’,k);
y=rand(n,m)
y=y.^k
A=find(y)
B=zeros(n,m);
res= (A==B)
if(mod(n,2)==0)
A(n/2:n/2+1)=[]
Else
A(n/2)=[]
end
6. Napisati MATLAB funkciju z1.m kod koje je ulaz vektor-red x koji sadrži minimalno 3
elementa, a izlazi iz funkcije su matrice A, B i C koje se formiraju prema sljededem
uzorku:
>>x=[1 2 3 4]; >>[A,B,C]=z1(x)
A=
100012341001
200000302202
300002003033
432112344004
B=
4444444
4333334
4322234
4321234
4322234
4333334
4444444

C=
4321
3212
2123
1234
U ostalim slučajevima funkcija javlja grešku.
__________________________________________________________________________
___
1.
function [A,B,C] = z1(x)
if nargin ~= 1
error('Funkcija ima jedan ulazni argument')
end
if nargout ~= 3
error('Funkcija ima tri izlazna argumenta')
end
[m,n]=size(x);
if m~=1 || n<3
error('Pogreška: ulaz mora biti vektor-red sa...
najmanje 3 elementa')
end
A=zeros(n,3*n);
A(end:-1:1,n+1:2*n)=diag(x);
A(:,2*n+1:3*n)=diag(x);
A(:,[1,2*n+1,3*n])=[x' x' x'];
A(n,1:n)=x(end:-1:1);
A([1,n],n+1:2*n)=[x; x];
B=zeros(2*n-1,2*n-1);
for i=1:n
B(i:2*n-i, i:2*n-i)=x(n+1-i);
end
C1=zeros(n);
for i=1:n
C1(i,i:n)=x(1:n+1-i);
end
C2=C1'-diag(diag(C1));
C=fliplr(C1+C2);
7. Napisati matlab fju koja uzima dva cijela broja n i m, a vraca matricu y dimenzija nxn.
Matrica ia elemente jednake n^3, osim elemenata dijagonale, koji su jednaki m. Nakon
toga transponovati, logaritmirati matricu i odrediti joj rang.
__________________________________________________________________________
_

function y=fja(n,m)
y=ones(n,n)*n^3;
y(1:n+1:n*n)=m;
y.';
logm(y);
rank(y);
End

8. Napisati matlab funkciju koja uzima dva cijela broja n i m, a vraca matricu y dimenzija
nxn. Matrica ima elemente jednake 1, osim prvih i zadnjih redova i kolona koji su
jednaki 0. Ukoliko je m>n/2 ili je n parno funkcija javlja gresku. Program kreirati bez
koristenja petlji. 
__________________________________________________________________________
__

function y=fja(n,m)
  if m>n/2 || mod(n,2)==0
    error('N mora biti neparno ili nesto')
end
y=ones(n)
y([1, end],:)=0;
y(:,[1,n])=0;
 End

9. Napisati matlab funkciju y=zadatak1(n) koja uzima cijeli broj n a vraca matricu y
dimenzija nxn. Matrica y se dobija tako da elementi na glavnoj i sporednoj dijagonali
budu jednaki broju n, centralni element bude jednak dvostrukom n, dok su svi ostali
jednaki 0. Prethodno vrijedi za slucaj neparnog n. Kada je n parno funckija ne
inicijalizira matricu y nego ispisuje odgovarajucu poruku. Nije dozvoljeno korištenje
petlji. Komentirati bitne linije koda.
__________________________________________________________________________
function [y]=zadatak1(n)
n=input(‘unesite neki n’);
if(mod(n,2)==0) error(‘broj mora biti neparan’)
end
y=zeros(n,n);
y(1:n+1:n*n)=n;
y(n:n-1:n*n-n+1)=n;
y(round(n/2),round(n/2))=2*n;
end
10. Napisati matlab funkciju z1.m sa jednim ulazom i jednim izlazom.

Ako je ulaz skalar funkcija ispisuje matricu dimenzija 5x5 prema slijedecem uzorku z1(3)
a=
    3   3   3   3   3
    3   5   5   5   3
    3   5   7   5   3
    3   5   5   5   3
    3   3   3   3   3

Ako je ulaz vektor funkcija ispisuje matricu ciji su elementi nasumicno kreirani prirodni brojevi
iz intervala [6,15] osim elemenata sporedne dijagonale koji su jednaki elementima ulaznog
vektora.
Ako je ulaz matrica funkcija ispisuje vektor ciji su redom elementi :
-proizvod elemenata sa dijagonale iznad sporedne dijagonale ulazne matrice
-zbir svih parnih elemenata ulazne matrice
-broj elemenata matrice vecih od 10
U ostalim slucajevima funkcija javlja gresku.
__________________________________________________________________________

function A=z1(x)
if nargin ~=1
error (‘Funkcija ima 1 ulazni element’)
end

if nargout~=1
error(‘Funkcija ima 1 izlazni argument’)
end

[m,n]=size(x);
if m==1 && n==1
A=zeros(5);
for i=1:5
A(i:6-i,i:6-i)=x-2+2*i;
end

elseif  (m==1 && n~=1) || (m~=1 && n==1)


t=max(m,n);
b1=floor(rand(t)*10 + 6);
b2=flipud(diag(x));
b3=fliplr(diag(diag(fliplr(b1))));
A=b1+b2-b3;
else 
  x1=prod(diag(fliplr(x),1));
  x2=sum(x(find(mod(x,2)==0)));
  x3=length(find(x>10));
  A=[x1 x2 x3];
end
11. a)Napisati MATLAB funkciju koja uzima dvije matrice A i B,mnozi ih i rezultat mnozenja
pohranjuje u matricu C.Nakon toga,funkcija transponuje matricu C,nalazi njen rang i
determinantu,te je pretvara u sparsnu matricu.Graficki prikazati elemente sparsne matrice.
b)Napisati MATLAB funkciju koja prima celiju stringova s naredbama koje treba izvrsiti i
izvrsava ih,zajedno s ispisom naredbi. 
__________________________________________________________________________
____

function matrica(A,B) 
try
C= A * B
catch
disp '** Greška pri množenju A * B'
end
C’
rank(C)
det(C)
S1=sparse(C)
full(S1)
spy(S1)

b) 
function strukture()

12. Napisati MATLAB funkcije:


a)”proizvod” koja uzima dvije matrice dimenzija minimalno 3x3,a vraca proizvod matrica bez
prve i zadnje kolone i reda.DImenzije matrica moraju odgovarati,inace funkcija vraca gresku.
b)”logaritam” koja uzima vektor x realnih brojeva,a vraca vektor y logaritama tih
brojeva.Funkcija crta grafik y=f(x) crvenim tackama.Grafik treba imati nazive osa i naslov.Svi
elementi vektora moraju biti veci od nule,inace funkcija vraca gresku.
__________________________________________________________________________
_

Function proizvod(A,B)
if (length(A)~=length(B)) || (length(A)<=3 && lenght(B)<=3))
 error(‘Dimenzije moraju odgovarati,i minimalno mora biti 3x3’)
End

C=ones(length(A)-2,length(A)-2);

You might also like