MATLAB入門學習-#2-矩陣基礎#1
阿新 • • 發佈:2018-11-10
MATLAB入門學習-#2-矩陣基礎#1
MATLAB的各種資料型別,在MATLAB中均以矩陣的形式存在(標量、向量都是特殊的矩陣),矩陣是MATLAB最基本的資料物件。
1.建立一個矩陣
1. 1直接輸入法
在命令視窗直接輸入矩陣元素。按行輸入矩陣元素,同一行元素使用空格或者逗號隔開,不同行元素使用分號或者回車作為間隔。
>> A=[1 2 3 4]; >> B=[2,3,4,5]; >> C=[1,2,3,4;2,3,4,5]; >> A,B,C A = 1 2 3 4 B = 2 3 4 5 C = 1 2 3 4 2 3 4 5
1. 2M檔案建立矩陣
啟動編輯器(輸入edit命令,或者使用按鈕),輸入待建立矩陣,輸入格式要求和直接輸入法類似,只不過不同行元素必須使用分號作為間隔。
1. 3特殊矩陣的建立
- 零矩陣(command:zeros)
>> B=zeros(5)
B =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
- 么矩陣(command:ones)
>> A=ones(5,6)
A =
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1. 4冒號表示式建立矩陣
冒號是一個重要的運算子,語法e1:e2:e3,e1為初始值,e2為步長,e3為終止值,產生行向量,以e1為開始,e3為結束,步長為e2。
>> A=[1:1:10]
A =
1 2 3 4 5 6 7 8 9 10
1. 5linspace建立行向量
語法linspace(a, b, n)。a和b分別為行向量的第一個和最後一個元素,n為總元素,省略n自動產生100個元素的行向
2.矩陣的簡單操作
2. 1矩陣索引
使用A[行,列]查詢(sub)或者使用A(序號)查詢(ind),使用序號查詢時應注意機器儲存矩陣是按列儲存的,即第一行第一列的序號是1,第二行第一列的序號是2,第三行第一列的序號是3…
>> A=[1 2 3;4 5 6;7 8 9];
>> A(2,3)
ans =
6
>> A(4)
ans =
2
還能做到找元素所在的位置,可以輸出座標sub或者是序號ind:
>> A=[1 2 3;4 5 6;7 8 9];
>> [m,n]=find(A==7)
m =
3
n =
1
>> ind=find(A==7)
ind =
3
sub和ind之間還可以互相轉換:
>> A=[1 2 3;4 5 6;7 8 9];
>> sub2ind(size(A),2,3)
ans =
8
>> [m,n]=ind2sub(size(A),8)
m =
2
n =
3
2. 2重排(command:reshape(A,m,n))
>> A=[1 2 3 4;5 6 7 8];
>> B=reshape(A,4,2)
B =
1 3
5 7
2 4
6 8
2. 3轉置
來一個單引號
2. 4拆分(索引的一個特例)
>> A=[1 2 3;4 5 6;7 8 9];
>> B=A(1,:) %得到矩陣A的第一行所有列
B =
1 2 3
>> C=A(1,1:2) %得到矩陣A的第一行第一列到第二列
C =
1 2
>> D=A(2,1:end-1) %得到矩陣A的第二行第一列到倒數第二列
D =
4 5
>> E=A([1,2],[1,2]) %得到矩陣A的第一行到第二行的第一列到第二列(哈哈奇怪的說法)
E =
1 2
4 5
2. 5刪除
刪除是通過賦空值來實現的。(空值是[])
>> A=[1 2 3;4 5 6;7 8 9];
>> A(1,:)=[]
A =
4 5 6
7 8 9
2. 6擴充套件(command:repmat(A,m,n))
將A複製,並按照m行n列來搞。
>> A=[1 2 3;4 5 6;7 8 9];
>> B=repmat(A,3,2)
B =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
2. 7壓縮(command:unique(A))
這個比較簡單,就是去掉重複的元素,我就不多bb了,直接上程式。
>> A=[1 2 2 3 3 3 4 4 4 4];
>> B=unique(A)
B =
1 2 3 4