matlab矩阵基础
矩阵的建立
(1)一般矩阵
>> [1,2,3;4,5,6;7,8,9]
ans =
1 2 3
4 5 6
7 8 9
(2)分块矩阵
>> A = [1,2,3;4,5,6;7,8,9]; >> B = [-1,-2,-3;-4,-5,-6;-7,-8,-9]; >> C=[A,B;B,A];

(3)复数矩阵
>> C=[A,B;B,A]; >> B = [1,2,3;4,5,6]; >> C = [6,7,8;9,10,11]; >> A = B + i*C;

结构矩阵和单元矩阵
(1)结构矩阵
格式为:结构矩阵元素.成员名 = 表达式;
原理同C语言还是一样的!
>> a(1).x1 = 10;a(1).x2 = 'liu';a(1).x3 = [11,21;34,78]; >> a(2).x1 = 12;a(2).x2 = 'wang';a(2).x3 = [34,191;27,578]; >> a(3).x1 = 14;a(3).x2 = 'cai';a(3).x3 = [13,890;67,231];

(2)单元矩阵
和一般矩阵相似,直接输入就行,然后用大括号括起来;
>> b = {10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];14,'cai',[13,890;67,231]}
b =
3×3 cell 数组
{[10]} {'liu' } {2×2 double}
{[12]} {'wang'} {2×2 double}
{[14]} {'cai' } {2×2 double}
冒号表达式
e1 : e2 : e3
e1为初始值,e2为等差,e3为终止值;
>> t = 0:1:5
t =
0 1 2 3 4 5
>> t = 0:5
t =
0 1 2 3 4 5
linspace(a,b,n)函数
a为初始值,b为终止值,n为数组总长度;
>> t = linspace(0,pi,6)
t =
0 0.6283 1.2566 1.8850 2.5133 3.1416
矩阵元素的引用
(1)直接通过下标来引用矩阵的元素
>> A = [1,2,3;4,5,6];
>> A(4,5) = 10;//这里4,5明显超出了原数组大小,自动把A矩阵定义成4行5列;

(2)通过序号引用
>> A = [1,2,3;4,5,6];
>> A(3)
ans =
2
其中A(1) = 1,A(2) = 4, A(3) = 2;//不是平常的先从左往右而是从上往下;
sub2ind()函数:
>> A = [1:3;4:6];
>> D = sub2ind(size(A),[1,2;2,2],[1,1;3,2])//后面两个矩阵分布代表了矩阵 D 的行,列;
D =
1 2 //A(1,1) = 1;A(2,1) = 2;
6 4 //A(2,3) = 6;A(2,2) = 4;
ind2sub函数:
>> [I,J] = ind2sub([3,3],[1,3,5])
I =
1 3 2
J =
1 1 2
I,J 就是在一个 [ 3, 3] 矩阵中序列号分别为1,3,5下标的 行和列;
利用冒号表达式获得子矩阵:
>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15];
>> A(1 : 2,:)//获得第1至2行的所有元素
ans =
1 2 3 4 5
6 7 8 9 10
>> A(2:3,1:2:5)//获得第2至3行的,1到5之间等差为2的元素
ans =
6 8 10
11 13 15
end运算符:
>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];
>> A(end,:)
ans =
16 17 18 19 20
>> A([1,4],3:end)//引用第一行和第三行
ans =
3 4 5
18 19 20
删除矩阵中元素的值:
>> A=[1,2,3,0,0;7,0,9,2,6;1,4,-1,1,8]
A =
1 2 3 0 0
7 0 9 2 6
1 4 -1 1 8
>> A(:,[2,4]) = []//让他等于空矩阵,必然删除的是某一行某一列
A =
1 3 0
7 9 6
1 -1 8
矩阵转置:
>> x = 1:12
x =
1 2 3 4 5 6 7 8 9 10 11 12
>> y = reshape(x,4,3)
y =
1 5 9
2 6 10
3 7 11
4 8 12
>> x = reshape(y,3,4)
x =
1 4 7 10
2 5 8 11
3 6 9 12
>> y = x(:)//x(:) == reshape(x,12,1);
y =
1
2
3
4
5
6
7
8
9
10
11
12

浙公网安备 33010602011771号