matlab基礎知識——矩陣(運算、高維矩陣、對角矩陣、矩陣編輯抽取)
原創不易,路過的各位大佬請點個贊
矩陣(運算、高維矩陣、對角矩陣、矩陣編輯抽取)
- matlab基礎知識——矩陣(運算、高維矩陣、對角矩陣、矩陣編輯抽取)
-
- 1.矩陣定義
- 2、矩陣的生成
- 3、建立特殊矩陣
- 4、建立高維矩陣
-
- 4.1建立三維矩陣
- 4.2建立多元維矩陣
- 4.3建立多元特殊矩陣
- 5、建立對角矩陣\分塊對角矩陣
- 6、矩陣元素的運算
- 7、矩陣 變維
- 8、矩陣 變向
- 9、矩陣的抽取、讀取
1.矩陣定義
MATLAB以矩陣做為資料操作的基本單元,是以matlab又被稱之為舉證明驗室或大型電腦。Matlab計算矩陣非常便捷、友善、高效。
在matlab建立矩陣時基本文法:
1. 輸入矩陣時要以“[ ]”為其辨別符号,矩陣的所有元素必須都在括号内。
2. 矩陣同行元素之間由空格(個數不限)或逗号分隔,行與行之間用分号或Enter鍵分隔。
3. 矩陣大小不需要預先定義。
4. 矩陣元素可以是運算表達式。
5. 若“[]”中無元素,表示空矩陣。
6. 如果不想顯示中間結果,可以用“;”結束。
a=[15 15 15;15 15 15;15 15 15]
a =
15 15 15
15 15 15
15 15 15
A=[];
A=[a,a*2,a*10]
A =
15 15 15 30 30 30 150 150 150
15 15 15 30 30 30 150 150 150
15 15 15 30 30 30 150 150 150
2、矩陣的生成
- 直接像上面寫一個矩陣
- 讀取工作區中的矩陣
A
A =
1 2 3
4 5 6
7 8 9
- 讀取事先儲存的矩陣
%事先在txt檔案中存儲1,2,3;3,4,5;5,6,7
load A.txt
A=[1,2,3;3,4,5;5,6,7];
save A.mat
load A.mat
3、建立特殊矩陣
zeros(3,4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>> ones(1,3)
ans =
1 1 1
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2
>> rand(2,4)
ans =
0.8147 0.1270 0.6324 0.2785
0.9058 0.9134 0.0975 0.5469
4、建立高維矩陣
4.1建立三維矩陣
矩陣的:号表示該維的所有元素;比如*B(:,:)表示矩陣B的所有行和列
矩陣的:号表示該維的所有元素;比如*B(:,1)表示矩陣B的第一列的所有元素
矩陣的:号表示該維的所有元素;比如*B(1,:)表示矩陣B的第一行的所有元素
>> B(:,:,1)=[1,2;1,2];
>> B(:,:,2)=[3,4;3,4];
>> B(:,:,3)=[5,6;7,8];
>> B
ans
B(:,:,1) =
1 2
1 2
B(:,:,2) =
3 4
3 4
B(:,:,3) =
5 6
7 8
4.2建立多元維矩陣
%Li表示第i維的維數
L1=2;
L2=4;
L3=2;
L4=2;
%生成L1 x L2 x L3 x L4的4維矩陣
for i4=1:L4
for i3=1:L3
for i2=1:L2
for i1=1:L1
CC(i1,i2,i3,i4)=i3*i4;
end
end
end
end
ans
>> CC
CC(:,:,1,1) =
1 1 1 1
1 1 1 1
CC(:,:,2,1) =
2 2 2 2
2 2 2 2
CC(:,:,1,2) =
2 2 2 2
2 2 2 2
CC(:,:,2,2) =
4 4 4 4
4 4 4 4
4.3建立多元特殊矩陣
ones(2,3,4)
rand(3,4,5,6)
randn(4,5,6,1)
A=[1,2,3;3,4,5;5,6,7];
B(:,:,1)=A;
B(:,:,2)=A*2;
B(:,:,3)=A*3;
5、建立對角矩陣\分塊對角矩陣
對角矩陣文法:diag( )
分塊對角矩陣: blkdiag(A,B,C)
A=diag([1,2,3,4,5,6])
A =
1 0 0 0 0 0
0 2 0 0 0 0
0 0 3 0 0 0
0 0 0 4 0 0
0 0 0 0 5 0
0 0 0 0 0 6
B=diag(ones(1,5))
分塊對角矩陣
>> A=[1,2,3;4,5,6;6,7,8];
>> B=[1,2;3,4];
>> C=[11,22;33,44];
>> blkdiag(A,B,C)
ans =
1 2 3 0 0 0 0
4 5 6 0 0 0 0
6 7 8 0 0 0 0
0 0 0 1 2 0 0
0 0 0 3 4 0 0
0 0 0 0 0 11 22
0 0 0 0 0 33 44
6、矩陣元素的運算
矩陣建立起來,第一個面臨的任務就是修改編輯其元素
A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> A(1,:)=[]
A =
4 5 6
7 8 9
>> A(2,:)=[]
A =
4 5 6
A=[1,2,3;4,5,6;7,8,9]
>> A(2,2)=100
A =
1 2 3
4 100 6
7 8 9
A(2,3)=123456
A =
1 2 3
4 100 123456
7 8 9
同樣高維矩陣也可以修改,修改方法一樣,隻要在()中标注好修改元素的位置
7、矩陣 變維
矩陣的變維可以用符号“:”法和reshape函數法。reshape函數的調用形式如下。reshape(X,m,n):将已知矩陣變維成m行n列的矩陣。
A=1:12;
B=reshape(A,2,6)
C=zeros(3,4); %用“:”法必須先設定修改後矩陣的形狀
C(:)=A(:)
B =
1 3 5 7 9 11
2 4 6 8 10 12
C =
1 4 7 10
2 5 8 11
3 6 9 12
8、矩陣 變向
9、矩陣的抽取、讀取
對矩陣元素的抽取主要是指對角元素和上(下)三角陣的抽取。對角矩陣和三角矩陣的抽取命見下
原創不易,路過的各位大佬請點個贊