%Först några exempel på matriser: A1=[1 2;7 9] A1 = 1 2 7 9 A2=rand(50,70) %Slumpmässig matris stlk 50x70 A2 = %Jag tar bort utskriften, den är flera sidor... ... A1=[1 27 9] A1 = 1 27 9 A1=[1 2 7 9 8 0] A1 = 1 2 7 9 8 0 A1=[1,2;7,9] A1 = 1 2 7 9 y1=[1 5 8] y1 = 1 5 8 y1=[1 5 8]' y1 = 1 5 8 %Räknesätt, deklaration och tilldelning a=0.4678 a = 0.4678 b=7 b = 7 tal1=a/b tal1 = 0.0668 tal2=a+b tal2 = 7.4678 tal3=a-b tal3 = -6.5322 tal4=a*b tal4 = 3.2746 tal4=a^b tal4 = 0.0049 tal4=ab %Man måste skriva ut gånger-operatorn, även vid parenteser. ??? Undefined function or variable 'ab'. % = är tilldelningsoperatorn. Det finns också en jämförelseoperator, a==b tal5-5=8 ??? tal5-5=8 | Error: The expression to the left of the equals sign is not a valid target for an assignment. tal4=tal5-5 ??? Undefined function or variable 'tal5'. clear A1 %Rensar minnet och sålede workspace från A1 clear %Tar bort alla variabler edit fil.m %Öppnar filen fil.m %Funktionsanrop, elemäntära funktioner tal1=sin(2) tal1 = 0.9093 y2=exp(-4) y2 = 0.0183 tan(y2) ans = 0.0183 ans ans = 0.0183 y1 ??? Undefined function or variable 'y1'. %y1 fans inte här y2 y2 = 0.0183 help elfun %Jag har tagit bort en hel del av utskriften. I Matlab ser det %inte riktigt ut så här blir länkar. Jämför gärna! %Elfun är en katalog "Elementary math functions". Elementary math functions. Trigonometric. sin - Sine. sind - Sine of argument in degrees. sinh - Hyperbolic sine. asin - Inverse sine. Exponential. exp - Exponential. expm1 - Compute exp(x)-1 accurately. log - Natural logarithm. Complex. abs - Absolute value. angle - Phase angle. complex - Construct complex data from real and imaginary parts. Rounding and remainder. fix - Round towards zero. floor - Round towards minus infinity. help floor %Hjälptexten till funktionen floor FLOOR Round towards minus infinity. FLOOR(X) rounds the elements of X to the nearest integers towards minus infinity. See also round, ceil, fix. Overloaded methods: distributed/floor sym/floor Reference page in Help browser doc floor help ceil CEIL Round towards plus infinity. CEIL(X) rounds the elements of X to the nearest integers towards infinity. See also floor, round, fix. Overloaded methods: distributed/ceil sym/ceil Reference page in Help browser doc ceil %Funktionsanrop, in- och utargument y2=exp(-4) y2 = 0.0183 m=min(y2,6) m = 0.0183 a=[1 5] a = 1 5 m=min(a) m = 1 [m,ind]=min(a) m = 1 ind = 1 %Utskriftsformat. Notera att variabeln innehåller ett tal med 16 värdesiffror % oavsett vilket utskriftsformat vi har! x=138773487 x = 138773487 y=138773484 y = 138773484 x=1.38773487 x = 1.3877 y=1.38773484 y = 1.3877 format long x x = 1.387734870000000 y y = 1.387734840000000 format rat x x = 1403/1011 format short %Återställer till fem värdesiffror %anonyma funktioner clear f=@(x)((1+x)./(1-x.^2)) f = @(x)((1+x)./(1-x.^2)) hej=(x)((1+x)./(1-x.^2)) ??? hej=(x)((1+x)./(1-x.^2)) | Error: Unbalanced or unexpected parenthesis or bracket. hej=((1+x)./(1-x.^2)) %Så här kan man allts göra om man har definerat %variabeln x före. Man bör tom göra så här istället %för att definera en anonym funktion om man vet att %man bara ska räkna ut uttrycket en gång/på en enda %plats i ett program. Det blir mer lättläst och %möjligen snabbare. ??? Undefined function or variable 'x'. f(1) ans = Inf %Varför? f([1,4,6]) %Se till att förstå det här!!! ans = Inf -0.3333 -0.2000 g1=@(z)(1+z) g1 = @(z)(1+z) g2=@(z)(1-z.^2) g2 = @(z)(1-z.^2) f2=@(x)(g1(x)./g2(x)) f2 = @(x)(g1(x)./g2(x)) f2([1,4,6]) ans = Inf -0.3333 -0.2000 x=[2 4 8.7] x = 2.0000 4.0000 8.7000 f2([1,4,6]) ans = Inf -0.3333 -0.2000 y=g1(2)*g2(2) %DET GÅR ATT MULTIPLICERA DE TAL SOM RETURNERAS FRÅN DE %ANONYMAFUNKTIONERNA .... y = -9 y=g1([2,3])*g2(2) y = -9 -12 y=g1([2,3])*g2([2,3]) ??? Error using ==> mtimes Inner matrix dimensions must agree. y=g1([2,3]).*g2([2,3]) y = -9 -32 y2=g1([2,3]) y2 = 3 4 y3=g2([2,3]) y3 = -3 -8 y2/y3 ans = -0.5616 g2*g1 %... MEN DET GÅR INTE ATT MULTIPLICERA TVÅ ANONYMA FUNKTIONER. % SE TILL ATT FÖRSTÅ SKILLNADEN! ??? Undefined function or method 'mtimes' for input arguments of type 'function_handle'. %Matriser, matisindex. Det finns två sätt att numrera matriser i Matlab! A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 A(1) ans = 1 A(2) ans = 4 A(4) ans = 2 A=[1 2 3 6;4 5 6 4;7 8 9 4] % LÖSA LINJÄRA EKVATIONSSYSTEM: % Först en uttökad koefficientmatris: A = 1 2 3 6 4 5 6 4 7 8 9 4 rref(A) %Radreducering: ans = 1 0 -1 0 0 1 2 0 0 0 0 1 %Inkonsistent system A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 A(4) ans = 2 A(1,1) ans = 1 A(1,2) ans = 2 A(2,1) ans = 4 A(2,:) ans = 4 5 6 A(:,3) ans = 3 6 9 A A = 1 2 3 4 5 6 7 8 9 A(:,3)=[1;5;6] A = 1 2 1 4 5 5 7 8 6 A(4)=10 A = 1 10 1 4 5 5 7 8 6 A(:,:)=10 A = 10 10 10 10 10 10 10 10 10 A=10 A = 10 A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 A(1:2,2) ans = 2 5 A(1:2,2)=10 A = 1 10 3 4 10 6 7 8 9 %VEKTORER är ett specialfall av matriser: x=1:1:10 x = Columns 1 through 7 1 2 3 4 5 6 7 Columns 8 through 10 8 9 10 x=1:0.1:10 x = %Utskriften blir lång, jag tar bort det mesta... Columns 1 through 4 1.0000 1.1000 1.2000 1.3000 Columns 5 through 8 1.4000 1.5000 1.6000 1.7000 ............. ............ Columns 85 through 88 9.4000 9.5000 9.6000 9.7000 Columns 89 through 91 9.8000 9.9000 10.0000 x=1:0.1:10; y=f(x) %Elementvis operation y(1)=f(x(1)), y(i)=f(x(i)) y = Columns 1 through 4 Inf -10.0000 -5.0000 -3.3333 Columns 5 through 8 -2.5000 -2.0000 -1.6667 -1.4286 ............. ............. Columns 85 through 88 -0.1190 -0.1176 -0.1163 -0.1149 Columns 89 through 91 -0.1136 -0.1124 -0.1111 % GRAFRITNING: y=f(x); %Semikolonet gör att vi slipper utskriften plot(x,y) %Här öppnas ett grafikfönster där grafen ritas. x=linspac(-2,2,100); %Felstavning av kommandot ger felmeddelande: ??? Undefined function or method 'linspac' for input arguments of type 'double'. x=linspace(-2,2,100); y=f(x); plot(x,y) x=linspace(-2,2,10); y=f(x); plot(x,y) %Skapar x=linspace(-2,2,1000); y=f(x); plot(x,y) hel ??? Undefined function or variable 'hel'. help linspace LINSPACE Linearly spaced vector. LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. Class support for inputs X1,X2: float: double, single See also logspace, :. Reference page in Help browser doc linspace doc linspace %Öppnar dokumentationen för linspace doc %Öppnar dokumentationens förstasida om dokumentationen är stängd. lookfor 'tangens' %Söker efter order tangens i första raden i hjälpfiler tangens not found. %Hittar inget eftersom tangens är ett svenskt ord lookfor 'tangent' %Det här går bättre: acot - Inverse cotangent, result in radian. acotd - Inverse cotangent, result in degrees. acoth -Inverse hyperbolic cotangent. atan - Inverse tangent, result in radians. atan2 - Four quadrant inverse tangent. atand - Inverse tangent, result in degrees. atanh - Inverse hyperbolic tangent. cot - Cotangent of argument in radians. cotd - Cotangent of argument in degrees. coth - Hyperbolic cotangent. tan - Tangent of argument in radians. tand - Tangent of argument in degrees. tanh - Hyperbolic tangent. help tan TAN Tangent of argument in radians. TAN(X) is the tangent of the elements of X. See also atan, tand, atan2. Overloaded methods: distributed/tan sym/tan Reference page in Help browser doc tan diary(off) %Här gör jag fel det måste vara en textsträng och sådana får man %genom att sätta enkelfnuttar runt ordet. En sträng/string i %Matlab är en matris med bokstäver och annat och kan manipuleras %på samma sätt som numeriska matiser. ??? Undefined function or variable 'off'. diary('off') %Går bättre...