例如 數組
.* 點乘ide
.^ 點乘冪spa
.\ 點左除get
./ 點右除數學
解釋:點運算是對相同維數的矩陣的對應元素進行相應的運算。
it
矩陣的點積,就是加點的狀況
io
就是矩陣各個對應元素相乘, 這個時候要求兩個矩陣必須一樣大小
class
矩陣的乘法,就是不加點的狀況
就是矩陣a的第一行乘以矩陣b的第一列,各個元素對應相乘而後求和做爲第一元素的值。
矩陣只有當左邊矩陣的列數等於右邊矩陣的行數時,它們才能夠相乘,乘積矩陣的行數等於左邊矩陣的行數,乘積矩陣的列數等於右邊矩陣的列數
變量
在MATLAB裏最核心的內容就是數組和數組運算,在MATLAB裏矩陣和數組的差異不大,矩陣做爲一種變換或映射算子的體現,在數學上有着嚴格的運算規則。數組不只承擔matlab軟件賦給它的一些運算規則,並且也實現矩陣運算的功能。
1 。 當你須要進行通常的(就像教科書講的)矩陣(向量)運算時就直接用 *(^)。
2 。 當你須要把兩(矩陣)向量 的對應位置相乘(求冪) 那就用 .*(.^)。軟件
A*B(爲線性代數中定義的矩陣乘法。按乘法定義要求必須有矩陣A的列數等於矩陣B的行數)
A.*B(符號數組的乘法,爲按參量A與B對應的份量進行相乘。A與B必須爲同型陣列,或至少有一個爲標量)
例1
A=[1 2 3;4 5 6;7 8 9];B=A;A*B
ans =
30 36 42
66 81 96
102 126 150
>> B/A
ans =
1 0 0
0 1 0
0 0 1 %矩陣這樣作是不行的!!!
>> A.*B
ans =
1 4 9
16 25 36
49 64 81
>> B./A
ans =
1 1 1
1 1 1
1 1 1
例2
>> a=[1 2 3];b=[4 5 6];c=[7 8 9];
>> a*b
??? Error using ==> mtimesInner matrix dimensions must agree.%這個是不行的!!
由於矩陣a 的行數和矩陣 b的列數並不相同,因此不能用 a*b
>> a.*b
ans =
4 10 18 (對應位置元素相乘)
>> a.*c
ans =
7 16 27
>> a/b
ans =
0.41558 (這個涉及到多項式求解了。。。)
>> a/c
ans =
0.25773
%其實是一個擬合的結果:a=kb,a=kc,k的一個擬合值。
>> a./b
ans =
0.25 0.4 0.5
>> a./c
ans =
0.14286 0.25 0.33333
因此,點乘或者點除都是一對一的乘或者除!!
Attention
特別注意:對於Ax=b的問題,若是A,b已知,那麼,x=A\b(x等於A左除b)
>> A=[1 2;3 4;5 6];B=[3; 7; 11];>> x=A\B
x =
1 1
>> A*x
ans =
3 7 11
必須牢記一點:matlab的輸入變量是矩陣,參與運算的矩陣維數必須對應!