访问矩阵元素
>> A=[1,2,3;4,5,6;7,8,9];
>> x=A(2,3)% 双下标访问
x =
6
>> x=A(2)% 单下标访问
x =
4
单下标访问时相当于访问A所转成的向量的元素。
>> A(3:6)
ans =
7 2 5 8
>>y4=A(:,1:2)%提取A的前两列元素
y4 =
1 2
4 5
7 8
>>y5 = A(1,:)%提取A的第一行元素
>> y5 = A(1,:)
y5 =
1 2 3
矩阵拼接
B=repmat(A, [m,n])%将矩阵A拼接为大矩阵
>> A=[1 2 3;4 5 6];
>> B=repmat(A,[2,2])
B =
1 2 3 1 2 3
4 5 6 4 5 6
1 2 3 1 2 3
4 5 6 4 5 6
定义字符矩阵
>> C=[‘abc‘;‘def‘;‘ghi‘]
C =
abc
def
ghi
>> size(C) %查看矩阵行数和列数
ans =
3 3
定义复数矩阵
>> a=[1 2;3 4];
>> b=[5 6;7 8];
>> A2=complex(a,b)
A2 =
1.0000 + 5.0000i 2.0000 +6.0000i
3.0000 + 7.0000i 4.0000 +8.0000i
>> a=[1 2;3 4];
>> b=[5 6;7 8];
>> A2=complex(a,b)
A2 =
1.0000 + 5.0000i 2.0000 +6.0000i
3.0000 + 7.0000i 4.0000 +8.0000i
定义符号矩阵
>> syms a b c d
>> A1=[a b;c d]
A1 =
[ a, b]
[ c, d]
>> A2=[1 2 3;4 5 6];
>> A2=sym(A2)
A2 =
[ 1, 2, 3]
[ 4, 5, 6]
特殊矩阵
零矩阵:zeros
一矩阵:ones
单位阵:eye
对角阵:diag
随机阵:rand
魔方阵:magic
高维数组
>> x(1:2,1:2,1)=[1 2;3 4];
>> x(1:2,1:2,2)=[5 6;7 8];
>> x(:,:,1)
ans =
1 2
3 4
>> x(:,:,2)
ans =
5 6
7 8
利用reshape函数定义3维数组。
>> x=reshape(1:12,[2,2,3])
x(:,:,1) =
1 3
2 4
x(:,:,2) =
5 7
6 8
x(:,:,3) =
9 11
10 12
利用repmat函数定义3维数组
>> x=repmat([1 2;3 4],[1 1 2])
x(:,:,1) =
1 2
3 4
x(:,:,2) =
1 2
3 4
定义元胞数组
直接赋值定义元胞数组
>> c1={[1 2;3 4],‘xz‘,10;[5 67],[‘abc‘;‘def‘],‘i love matlab‘}
c1 =
[2x2 double] ‘xz‘ [ 10]
[1x3 double] [2x3 char] ‘i love matlab‘
利用cell函数定义元胞数组
c = cell(n)
c = cell(m, n)
c = cell([m, n])
c = cell(m, n, p,…)
c = cell([m n p …])
c = cell(size(A))
定义结构体数组
>> struct1(1).name=‘xz‘;
>> struct1(2).name=‘hp‘;
>> struct1(1).age=31;
>> struct1(2).age=22;
>> struct1
struct1 =
1x2 struct array with fields:
name
age
利用struct函数定义结构体数组
调用格式:
s = struct(‘field1‘, values1, ‘field2‘, values2, …)
s = struct(‘field1‘, {}, ‘field2‘, {}, …)
>> struct2=struct(‘name‘,{‘xz‘,‘hp‘},‘age‘,{31,22})
struct2 =
1x2 struct array with fields:
name
age
>> struct2(1).name
ans =
xz