%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...