MATLAB矩阵是二维数组,可以看成由多行向量叠起来的表。写法仍是行内空格或逗号、行间分号:

m = [1 2 3; 4 5 6; 7 8 9]
m =
     1     2     3
     4     5     6
     7     8     9

MATLAB创建矩阵可以手写、用 zeros / ones / eye / rand 批量生成,也可以把小块拼成大块,再用转置换行列方向。

手写矩阵

  • 整体用方括号 [ ] 包住
  • 同一行内用空格或逗号分隔
  • 换行用分号 ;,也可以在编辑器里直接回车换行
m1 = [1 2 3; 4 5 6]
m2 = [1, 2, 3; 4, 5, 6]
m3 = [1 2 3
      4 5 6]

zeros、ones、eye、rand

小矩阵可以手敲。需要整块零、单位阵或随机数时,用内置函数更省事:

MATLAB 创建矩阵示例运行
zeros(3)     % 3×3 全 0
zeros(2,4)   % 2×4 全 0
ones(4,3)    % 4×3 全 1
eye(4)       % 4×4 单位阵
rand(3,5)    % 3×5,(0,1) 均匀随机

只给一个参数时生成方阵,两个参数时是行数 × 列数:

A = ones(2,3)
A =
     1     1     1
     1     1     1

拼接

方括号也能把已有矩阵横拼或竖拼。维度对不上时会报错:

A = [1 2; 3 4];
B = [5 6; 7 8];
C = [A B]      % 横向 → 2×4
D = [A; B]     % 纵向 → 4×2
E = cat(1, A, B)   % 沿第 1 维(行)拼
F = cat(2, A, B)   % 沿第 2 维(列)拼
G = repmat(A, 2, 3)   % 把 A 按 2×3 块平铺

转置

A = [1 2 3; 4 5 6];
A'
ans =
     1     4
     2     5
     3     6

A' 对复数是共轭转置。只要换行列、不要共轭时用 A.'。实数矩阵下两者结果相同。

注意事项

  • 每一行元素个数必须相同,[1 2 3; 4 5] 会报错。
  • 调用函数要写括号:zeros3),不能写成 zeros 3
  • zeros(...) 是全零矩阵,空矩阵是 [],不是一回事。