You are on page 1of 12

M funkcije

Pozivanje s 2 ili 3 argumenta


function s = zbroji(x,y,z)
if nargin < 2
error('Funkciju je potrebno pozvati s najmanje 2 argumenta.')
end

if nargin == 2
s = x + y;
else
s = x + y +z;
end % U editor napišemo funkciju te ju testiramo
>> zbroji (5,4,3)
ans =
12
Pozivanje s promjenjivim brojem argumenta
function s = zbroji_nova(varargin)
if ~isnumeric([varargin{ :}])
error('Ulazi moraju biti numeričke vrijednosti.')
end
s = sum([varargin{ :}]);
>> zbroji_nova(5,4,6,2,3)
ans =
20

Proračun zbroja trećih korijena ulaznog vektora s podfunkcijom

function y=sumcuberoots(x)
y=sum(cuberoot(x)); function z
= cuberoot(x)
z = sign(x).*abs(x).^(1/3);

>sumcuberoots(9)

ans =
2.0801

Crtanje grafičkog prikaza funkcije na intervalu za konstante T = 1, 2, 3, 4 i 5 s. Nakon


crtanja grafičkog prikaza potrebno je nacrtati mrežu, označiti osi te upisati naslov i
legende

function pr1_6_1=pr1_6_1()

t=[0_10/1000.10]’;

for i=1:5

y(:,i)1-exp(-2*t/i).*cos(2*pi/2*t);

oznake{i}=strcat(‘Konstanta prigušenja T = ‘, num2str(i));

end

t %ispiši t

y %ispiši y

plot(t,y) %iscrtavanje f-je

grid %dodaj mrežu

xlabel(‘t[s]’) %x os

ylabel(‘y(t)’) %y os

title (‘Prikaz funkcije’) %naslov f-je

legend (oznake) %legenda

>> pr1_6_1()

t=

0.0100

0.0200

0.0300

0.0400


9.9800

9.9900

10.0000

y=

0 0 0 0 0

0.0203 0.0104 0.0071 0.0055 0.0045

0.0411 0.0217 0.0152 0.0119 0.0099

… … … … …

1.0000 1.0000 0.9987 0.9932 0.9816

1.0000 1.0000 0.9987 0.9932 0.9816


1.0000 1.0000

Prikaz funkcije u više koordinatnih sustava


>> subplot(2,2,1) %prikaz f-je u više koordinatnih sustava

>> semilogx(t,y) %logaritamski prikaz na osi x


>> grid;

>> xlabel('t[s]')

>> ylabel('y(t)')

>> oznake(1)

>> legend(1)

>> t=[0:10/1000:10]';

for i=1:5

y(:,i)=1-exp(-2*t/i).*cos(2*pi/2*t);

oznake{i}=strcat('Konstanta prigušenja T= ', num2str(i));

end

>> semilogx(t,y)

>> oznake(1)

ans =

1×1 cell array

{'Konstanta prigušenja T=1'}

>> title('Prikaz funkcije y(t,T)= 1-exp(-2*t/T).*cos(pi*t)')

>> oznaka=strrep(oznake,'Konstanta prigusenja',' ')

oznaka =

1×5 cell array

Columns 1 through 2

{'Konstanta prigu…'} {'Konstanta prigu…'}

Columns 3 through 4

{'Konstanta prigu…'} {'Konstanta prigu…'}

Column 5

{'Konstanta prigu…'}

>> subplot(2,2,3)

>> xlabel('t[s]')

>> semilogx(t,y)

>> semilogy(t,y)

>> subplot(2,2,1)

>> xlabel('t[s]')
>> ylabel('y(t)')

>> subplot(2,2,3)

>> grid

>> subplot(2,2,3)

>> grid

>> grid

>> subplot(2,2,1)
>> grid

>> subplot(2,2,3)

>> ylabel('y(t)')

>> xlabel('t[s]')

>> subplot(1,2,2)

>> plot(t,y)

>> xlabel('t[s]')

>> ylabel('y(t)')

>> legend(oznaka)

>> grid
Prikaz funkcije malim brojem točaka
>> t=[0:10/7:10]'

t=

1.4286

2.8571

4.2857

5.7143

7.1429

8.5714

10.0000

>> y1=2-sin(t);

>> subplot(2,2,1),plot(t,y1,'r');

>> grid

>> xlabel('t(s)')

>> title('plot(t,y1,"r")')

>> subplot(2,2,2),stem(t,y1,'b:')

>> grid

>> xlabel('t(s)')

>> title('stem(t,y1,"b:")')

>> subplot(2,2,3),stairs(t,y1,'g.-')

>> grid

>> xlabel('t(s)')

>> title('stairs(t,y1,"g.-")')

>> subplot(2,2,4),bar(t,y1,'c')

>> grid

>> xlabel('t(s)')
>> title('bar(t,y1,"c")')

Prikaz podataka u polarnom prikazu


>> th=[0:6*pi/1000:6*pi]

th =

0 0.0188 0.0377 0.0565 0.0754 0.0942 0.1131

>> r=2*th

r=

0 0.0377 0.0754 0.1131 0.1508 0.1885 0.2262

>> polarplot(th,r,'r')

>> title('Polarni prikaz r=2th')


Prikaz 3D spirale krivuljom

function pr1_6_5=pr1_6_5()

t=[0:2*pi/1000:2*pi]';

x=t.*cos(6*t);

y=t.*sin(6*t);

for i=1:4

opis{ i}=strcat('Spirala br. ',num2str(i));


z(:,i)=t*(1+i/2);

end

plot3(x,y,z)

grid

legend(opis)

xlabel('x')

ylabel('y')

zlabel('z')

>> pr1_6_5()
Generiranje 2D mreže
>> x1=1:5;

>> y1=1:3;

>> [x,y]=meshgrid(x1,y1)
x=

1 2 3 4 5

1 2 3 4 5
1 2 3 4 5

y=

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

Iscrtavanje 3D plohe

>> x1=linspace(-2,2,100)

x1 =

-2.0000 -1.9596 -1.9192 -1.8788 -1.8384 -1.7980 -1.7576

>> y1=linspace(-2,2,100)

y1 =

-2.0000 -1.9596 -1.9192 -1.8788 -1.8384 -1.7980 -1.7576

>> [x,y]=meshgrid(x1,y1)

x=

-2.0000 -1.9596 -1.9192 -1.8788 -1.8384 -1.7980 -1.7576


-2.0000 -1.9596 -1.9192 -1.8788 -1.8384 -1.7980 -1.7576
-2.0000 -1.9596 -1.9192 -1.8788 -1.8384 -1.7980 -1.7576
-2.0000 -1.9596 -1.9192 -1.8788 -1.8384 -1.7980 -1.7576

>> z=sin(x.^2+y.^2)

z=

Columns 1 through 7

0.9894 0.9999 0.9855 0.9479 0.8896 0.8132 0.7214


0.9999 0.9849 0.9458 0.8851 0.8055 0.7100 0.6019

0.9855 0.9458 0.8836 0.8016 0.7031 0.5914 0.4699

ssdsd
>> surf (x,y,z)

You might also like