Contents
- Exempel Anonym funktion
- Exempel extern funktion
- Exempel extern funktion från lab3b
- Anrop av funktionen cirkel
- Exempel. Inmatning/utskrift
- Man kan inte blanda tal och tecken i disp
- Exempel (formatkoder för snyggare utskrift)
- ginput - läsa in från figurfönster
- Rita hela triangeln
- Exempel if-sats
- Exempel if-sats (flervalsalternativ)
- Exempel while - loop.
- Exempel for - loop
- Fem volymer (for - loop)
- Beräkna 1 + 1/2 + 1/3 + ... + 1/100
- Beräkna 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11
- pi/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 ....
Exempel Anonym funktion
f(x) = x*xos(x), 0 < x < 2pi
f = @(x)x.*cos(x); x = linspace(0,2*pi); y = f(x); plot(x,y) grid on % rutnät
Exempel extern funktion
type f
function y = f(x) y = x.*cos(x);
Exempel extern funktion från lab3b
type cirkel % Vilka är in-parametrarna? % Vilka är ut-parametrarna? % Vad beräknar funktionen ?
function [x,y]=cirkel(a,b,r) t = linspace(0,2*pi); x = a+r*cos(t); y = b+r*sin(t);
Anrop av funktionen cirkel
[x,y] = cirkel(0,0,1); plot(x,y,'blue'); hold on; [x,y] = cirkel(2,3,5); plot(x,y,'red') axis equal grid on
Obs, Matlabs inbyggda kommandon är externa funktioner
Exempel. Inmatning/utskrift
% x = input('Skriv ett tal '); % disp('Du skrev '); % disp(x);
Man kan inte blanda tal och tecken i disp
% x = input('Skriv ett tal '); % utskrift = ['Du skrev ', num2str(x)]; % disp(utskrift);
Exempel (formatkoder för snyggare utskrift)
% r = input('Skriv en radie '); % V = 4/3*pi*r^3; % utskrift = num2str(V,'%.1f\n'); % avrunda till en decimal % disp(utskrift)
ginput - läsa in från figurfönster
figure(1); clf; hold on; axis([0,1,0,1]); grid on [x,y] = ginput(3); plot(x,y)
Rita hela triangeln
x = [x; x(1)] y = [y; y(1)] plot(x,y)
x = 0.2776 0.7523 0.3191 0.2776 y = 0.7828 0.4650 0.3105 0.7828
Exempel if-sats
% r = input('Skriv en positiv radie '); % if r>0 % V = 4/3*pi*r^3; % disp(V) % end
Exempel if-sats (flervalsalternativ)
% r = input('Skriv en positiv radie '); % if r > 0 % V = 4/3*pi*r^3; % disp(V) % elseif r == 0 % disp('du skrev 0 :('); % else % disp('Äsch du skrev ett negativt tal'); % end
Exempel while - loop.
%Så länge som r är negativt; läs in ett nytt tal % r = -1; % while r <= 0 % r = input('Skriv en positiv radie '); % end % disp('Grattis radien är nu positiv '); % V = 4/3*pi*r^3; % disp(['V = ',num2str(V)])
Exempel for - loop
for i = [1, 0, 3] disp(i) end
1 0 3
Fem volymer (for - loop)
for r = 1:0.1:1.4 V = 4/3*pi*r^3; disp([r, V]); end
1.0000 4.1888 1.1000 5.5753 1.2000 7.2382 1.3000 9.2028 1.4000 11.4940
Beräkna 1 + 1/2 + 1/3 + ... + 1/100
s = 0; for n = 1:100 s = s+1/n; end disp(s)
5.1874
Beräkna 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11
s = 0; teck = -1; for n = 1:2:11 teck = -teck; s = s+teck/n; end disp(s)
0.7440
pi/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 ....
Beräkna pi med 5 korrekta decimaler
s = 1; teck = 1; n = 1; while abs(4*s-pi) > 0.5e-5 teck = -teck; n = n+2; s = s+teck/n; end disp(4*s)
3.1416