访问矩阵元素
>> 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