Presentation laddar. Vänta.

Presentation laddar. Vänta.

KPP053, HT2016 MATLAB, Föreläsning 2

Liknande presentationer


En presentation över ämnet: "KPP053, HT2016 MATLAB, Föreläsning 2"— Presentationens avskrift:

1 KPP053, HT2016 MATLAB, Föreläsning 2
Vektorer Matriser Plotta i 2D Teckensträngar

2 Vektorer För att skapa vektorn x = [ 0 1 1 2 3 5]:
För att ändra (eller lägga till) ett element i x: >> x(7)=8

3 Vektorer För att ”hämta” ett element i x: >> x(7) ans = 8
För att ”hämta” 3:e till 6:e elementet i x: >> x(3:7)

4 Vektorer För att ”hämta” vartannat element från 3 till 7:
>> x(3:2:7) ans = För att ”hämta” (t.ex) det 3:e, 4:e och 7:e elementet ges en vektor: >> x([ ])

5 Att ta bort element ur en vektor
Ta bort ett specifikt element [ ]: >> x(7) = [] %ersätter x(7) med en tom vektor x = Ta bort sista värdet ur x: >> x(length(x)) = [] ans =

6 Vektorer med konstant stegavstånd:
För att skapa vektorn x = [ ]: >> x = 0:7 x = För att skapa vektorn x = [ 0,0 0,5 1,0 1,5 2,0 2,5 3,0 ] >> x = 0:0.5:3

7 linspace(a,b) och linspace(a,b,n)
Skapar en vektor med n element där första elementet är a och sista elementet är b. För linspace(a,b) blir n = 100.

8 Matriser Ange matrisen 𝐴= 1 2 5 6 9 10 3 4 5 6 7 8
>> A = [ ; ; ] % semikolon indikerar radbyte A = Man kan även slå en ny rad direkt i kommandofönstret (eller i en .m-fil): >> A = [ ]

9 Delmatriser Ett enstaka element ur A kan hämtas med A(j,k) där j är elementets rad och k är elementets kolumn. Vill man hämta flera element ur A kan man i stället använda ange interval. (samma A som tidigare) >> A(2:3,3:4) %ger 3e till 4e kolumnen av rad 2-3 ans =

10 Delmatriser (fortsättning)
Det går naturligtvis också att ange ett heltal och en intervall. (samma A som tidigare) >> A(3,3:4) %ger 3e till 4e kolumnen av rad 3 ans = Anges ett kolon utan heltal får man hela raden eller hela kolumnen i stället för ett intervall. >> A(3,:) %ger alla kolumner av rad 3

11 Sammansättning av matriser och vektorer
Sammansatta matriser och vektorer kan fås genom att ange en vektor/matris vars element i sin tur är vektorer/matriser. Ex: >> x1 = [ ]; x2 = [ ]; >> x = [ x1 x2 ] x = >> A = [ x1 ; x2 ] A =

12 Funktioner som genererar specifika matriser
zeros(n) %ger en n×n matris av nollor zeros(m,n) %ger en m×n matris av nollor ones(n) %ger en n×n matris av ettor ones(m,n) %ger en m×n matris av ettor eye(n) %ger en n×n identitetsmatris

13 Funktioner som genererar slumpmatriser:
rand(n) eller rand(m,n) genererar en matris av jämt fördelade slumpvärden mellan 0 och 1. randn(n) eller randn(m,n) genererar en matris av normalfördelade slumptal. randi(imax,n) eller randi(imax,m,n)generer en slumpmatris av jämt fördelade heltal mellan 0 och imax.

14 Vanliga räkneoperationer med matriser.
En skalär kan adderas till eller subtraheras från en matris (eller vektor). En matris (eller vektor) kan multipliceras med eller divideras med en skalär: Två matris (eller vektorer) av samma storlek kan subtraheras eller adderas med varandra. I alla dessa fall används standartecknet för respektive operation.

15 Elementvis räkneoperationer med matriser.
Varje element i en matris multipliceras med motsvarande element ur en annan matris. Exempel: >> A = [ 2 3 5; ] A = >> B = [3 2 3; 3 2 3] B = >> A.*B ans =

16 Elementvis räkneoperationer med matriser (forts.)
Varje element i en matris divideras med motsvarande element ur en annan matris. Exempel (samma A och B som tidigare): >> A./B ans = 2/ / /3 1/ / /3 Varje element i en matris kan upphöjas till någon lämplig exponent. >> A.^3

17 Matrismultiplikation (matrisprodukt)
Om multiplikationstecken används utan punkt genom får vi matrisprodukten (förutsätt att antalet rader i A matchar antalet kolumner i B) >> B = B' %B' transponerar B. B = >> A*B ans =

18 Några inbyggda funktioner för matriser och vektorer
length(x) %ger längden av vektorn x max(x) %ger största elementet i vektorn x min(x) %ger minsta elementet i vektorn x mean(x) %ger medelvärdet av elementen i x sum(x) %ger summan elementen i vektorn x dot(x,y) %ger skalärprodukten x∙y cross(x,y) %ger vektorprodukten x×y size(A) %ger storleken n×m av matrisen A inv(A) %ger inversmatrisen för A Fler funktioner finns på sidan 68 i kursboken.

19 Ekvationssystem (igen)
A\b ger en vektor x så att 𝐴×𝑥=𝑏. b/A ger en vektor x så att 𝑥×𝐴=𝑏.

20 Tillämpning av vektorer: Plotta en trigonometrisk funktion
x = linspace(-pi,pi); y = sin(x); %varje element i y blir %sinusvärdet för motsvarande %element i x plot(x,y); Grafen för y = sin(x) öppnas i nytt fönster:

21 Tillämpning av vektorer: Plotta grafen x3 - 2x2 + 4x - 10
x = linspace(-10,10); %godtyckligt intervall % punkt framför * och ^ ger elmentvis operation y = x.^3 – 2.*x.^2 + 4.*x – 10 plot(x,y); OBS: Detta kan även göras genom att definiera en anonym funktion (då behövs ej punkterna): f x^3 – 2*x^2 + 4*x – 10; y = f(x);

22 Teckensträngar En teckensträng är en vektor där de lagrade värdena motsvarar tecken. Skapas i en tilldelningssats med enkla citattecken ex: --> s = 'Hello world!' s = Hello world! Som med en vanlig vektor kan man ändra (eller radera) ett enstaka element: --> s(12)='?' Hello world?

23 Teckensträngar (forts.)
Som med en vanlig vektor kan man ändra (eller radera) ett enstaka (eller flera) element ur en teckensträng: --> s1 = s(1:5) s1 = Hello --> s2 = s(length(s)) s2 = ? eller sätta ihop två strängar: --> s = [s1 s2] s = Hello?

24 Teckensträngar (forts.)
Funktionen num2str() kan användas för att konvertera nummer till teckensträngar. >> tau = num2str(2*pi) %Detta konverterar det numeriska tau = %värdet 2*pi till teckensträngen %’6.2832’ Det går även att specificera hur många värdesiffror som skall ingå. >> tau = num2str(2*pi,8) %resulterar i 7 värdesiffror tau = %eftersom en plats i teckensträngen %tas upp av decimalkommat Funktionen är användbar när nummer behöver infogas i textsträngar.


Ladda ner ppt "KPP053, HT2016 MATLAB, Föreläsning 2"

Liknande presentationer


Google-annonser