F4 Grafik i Matlab
Matlab har ett stort antal funktioner för att skapa grafik (rita kurvor, ytor och andra grafiska objekt).
Några vanliga funktioner:
plot, plot3 : Rita figurer i 2- resp 3- dimensioner
bar, histogram, stem : Stapeldiagram, histogram
meshgrid, surf, contour : För 3-dimensionella ytor och nivåkurvor
fill, fill3 : Skapa ifyllda strukturer i 2- resp 3- dimensioner
imagesc : För att illustrera matriser
Sedan tillkommer diverse 'hjälpfunktioner' för att administrera och fixa till figurerna, T.ex.
figure, clf, hold on, hold off,
subplot
title, xlabel, ylabel, axis
text, gtext, grid on, grid off
Vilka av kommandona har du stött på i lab 1 och lab 2 ? (Lab1: uppgift 2, Lab2: uppgifterna 3-6).
Contents
Rita en triangel
figure(1); % gör figur 1 aktuell clf % ta bort allt innehåll från figur 1 x=[0.2, 0.8, 0.5, 0.2] % x-koordinater y=[0.1, 0.3, 0.7, 0.1] % y-koordinater plot(x,y,'o-') % plot(x,y) % Blir automatiska axlar
x = 0.2000 0.8000 0.5000 0.2000 y = 0.1000 0.3000 0.7000 0.1000

axis equal % Kvadratiskt koordinatsystem

axis equal, axis([-0.1, 1.2, 0, 1]) % Lite luft runt triangeln

Text i figuren
txt = '(x_1,y_1)'; % (latex och tex stöds) text(x(1)+0.1,y(1),txt); % texten placeras i (.3,.1) txt = '(x_2,y_2)'; text(x(2)+0.1,y(2),txt); txt = '(x_3,y_3)'; text(x(3)+0.1,y(3),txt);

Titel
title('En triangel');

Samma text men med for-loop
TXT = ['(x_1,y_1)'; '(x_2,y_2)'; '(x_3,y_3)']; for i = 1:3 txt = TXT(i,:); text(x(i)+0.1,y(i),txt,'Color','green'); end % Color är attribut. % Man anger paren 'attribut',attributvärde

Placera ut texten med musen istället
TXT = ['(x_1,y_1)'; '(x_2,y_2)'; '(x_3,y_3)']; figure(1); clf; plot(x,y,'o-'); axis equal, axis([-0.1, 1.2, 0, 1]); for i = 1:3 txt = TXT(i,:); gtext(txt,'FontSize',14) end % FontSize är ett attribut

h=plot(x,y,'r','LineWidth',2,'MarkerSize',10,'Marker','d'); % get(h) för att visa vilka attribut som finns % set(h,'attribut',attributvärde) för att sätta attribut till ett visst % värde % % Man kan också använda sk. punktnotation och skriva % h.attributnamn = attributvärde % % h.Marker = '<'; % h.MarkerSize = 10; % h.LineWidth = 'yellow';

Fyll i triangeln med färg
hold on % Vi ska rita mer fill(x,y,[0.6 0.8 1]) % RGB för mesblått % Färg i RGB anges med tre tal; Andel Rött,Grönt,Blått % 1 är maximalt av färgen, 0 är inget av färgen. % [1,1,1] blir vitt (maximalt av alla färger) % [0,0,0] blir svart (inget av någon färg) % [1,0,0] blir rött (maximalt rött, inget grönt, inget blått)

Rotera triangeln
Nu ritar vi om i ett större koordinatsystem
clear all; clf; close all; clc x=[0.2, 0.8, 0.5, 0.2]; % radvektorer y=[0.1, 0.3, 0.7, 0.1]; fill(x,y,[0.6, 0.8, 1],'edgecolor',[0, 0, 1],'linewidth',2) hold on plot(x,y,'ro','linewidth',2,'markersize',5) axis equal, axis([-1, 1, -1, 1]) % större ritområde

P=[x;y]; % matris med två rader v=pi/3; % rotation pi/3 moturs A=[cos(v) -sin(v); sin(v) cos(v)]
A = 0.5000 -0.8660 0.8660 0.5000
clc % Rita den roterade triangeln Ph=A*P xh=Ph(1,:); yh=Ph(2,:); fill(xh,yh,[1 0.8 1],'edgecolor',[0 0 1],'linewidth',2) % rosa triangel hold on plot(xh,yh,'ro','linewidth',2,'markersize',5)
Ph = 0.0134 0.1402 -0.3562 0.0134 0.2232 0.8428 0.7830 0.2232

for i=1:10 Ph=A*P; xh=Ph(1,:); yh=Ph(2,:); fill(xh,yh,[1/i, i/10, 1/i],'EdgeColor',[0 0 1],'LineWidth',2) hold on plot(xh,yh,'ro','LineWidth',2,'MarkerSize',5) P=Ph; pause(1) end

Rita en sluten kurva
Börja rita en cirkel med radie 3
t = linspace(0,2*pi);
r = 3;
x = r*cos(t); y = r*sin(t);
clf; plot(x,y); axis equal

Låt radien bero av vinkeln, r(t) = (2+sin(3t))/sqrt(1+exp(cos(t)))
t = linspace(0,2*pi);
r = (2+sin(3*t))./sqrt(1+exp(cos(t)));
x = r.*cos(t);
y = r.*sin(t);
clf
plot(x,y); axis equal

Hur många gånger skär kurvan enhetscirkeln?
hold on xc = cos(t); yc = sin(t); plot(xc,yc); % enhetscirkeln

Vilka vinklar skär kurvan enhetscirkeln ?
clf; t = linspace(0,2*pi); r = (2+sin(3*t))./sqrt(1+exp(cos(t))); plot(t,r,'color','blue'); hold on; plot(t,ones(1,100),'red'); f = @(t)(2+sin(3*t))./sqrt(1+exp(cos(t)))-1; v1 = fzero(f,2); hold on; plot(v1,1,'o') % I uppgift 4 lab 2 ritar man slutna kurvor.
