当前位置: 主页 > 生物技术 > 软件工具与数据库 > 编程与数值计算

matlab关于矩阵基础知识

2026-04-05 11:40 bioguider Internet 阅读 0
核心摘要: 2.1 矩阵 矩阵定义 由 m 行 n 列 构成的数组称为 m n 阶矩阵 定义规则 使用方括号 定义矩阵 列分隔符 逗号 或空格 行分隔符 分号 或回车键 Enter 示例 matlab a a11

2.1 矩阵

矩阵定义

由 m 行 n 列 构成的数组称为 (m×n) 阶矩阵

定义规则

  • 使用方括号 [] 定义矩阵

  • 列分隔符:逗号 , 或空格 

  • 行分隔符:分号 ; 或回车键 Enter

示例

matlab
a = [a11 a12 a13; a21 a22 a23]
a = [a11, a12, a13; a21, a22, a23]

以上定义了一个 2×3 阶矩阵 a

元素类型

aᵢⱼ 可以是:

  • 数值

  • 变量(需先赋值)

  • 表达式(可以任意组合)

  • 字符串(每行字母个数须相等)

注意:字符串矩阵调用时,缺省状态按行顺序取字母,如 a(1) 表示第一行第一个字母。


常用矩阵函数

 
 
函数命令 说明
size(a)
[d1,d2,d3,...] = size(a)
求矩阵大小。对 m×n 二维矩阵:第一个为行数 m,第二个为列数 n;对多维矩阵:第 N 个为第 N 维长度
cat(k, a, b) 矩阵合并。
• k=1:合并形如 [a;b](行添加,要求列数相等)
• k=2:合并形如 [a,b](列添加,要求行数相等)
• 以此类推,n 维合并要求 n-1 维相等
fliplr(a) 矩阵左右翻转
flipud(a) 矩阵上下翻转
rot90(a)
rot90(a,k)
矩阵逆时针旋转 90°(k 参数:逆时针旋转 90°×k 度)
flipdim(a,k) 沿指定维数翻转。k=1:上下翻转;k=2:左右翻转
tril(a)
tril(a,k)
下三角部分(含对角线)。k=0 时取标准下三角;k 为正/负表示对角线向上/下移动
triu(a)
triu(a,k)
上三角部分(含对角线)。k 参数设置同上
diag(a)
diag(a,k)
生成对角矩阵或取出对角元素。k 参数设置对角线偏移量
repmat(a,m,n) 矩阵复制。以 a 为单位复制成 m×n 的矩阵块
meshgrid(s,t)
[u,v]=meshgrid(s,t)
生成网格坐标矩阵。u:按行顺序取 s 的元素,重复排列;v:按列顺序取 t 的元素,重复排列
eye(a)
eye(a,k)
生成 a 阶单位方阵;k 参数生成 a×k 阶单位矩阵(取前 k 列,不足补 0)
ones(a)
ones(a,k)
生成 a 阶全 1 方阵;k 参数生成 a×k 阶全 1 矩阵
zeros(a)
zeros(a,k)
生成 a 阶全 0 方阵;k 参数生成 a×k 阶全 0 矩阵
inv(a) 求 a 的逆矩阵

函数演示示例

matlab
% cat 函数演示
a = magic(3);
b = pascal(3);
c = cat(4, a, b);  % 可尝试将 4 改为 3、2、1,观察合并效果

面向列的数据集

MATLAB 采用面向列的存储方式分析数据。列方向代表同一属性在不同时间的观测值。

示例数据集 count.dat

 
 
Time Location 1 Location 2 Location 3
01h00 11 11 9
02h00 7 13 11
03h00 14 17 20
04h00 11 13 9
05h00 43 51 69
06h00 38 46 76
07h00 61 132 186
08h00 75 135 180
09h00 38 88 115
10h00 28 36 55
11h00 12 12 14
12h00 18 27 30
13h00 18 19 29
14h00 17 15 18
15h00 19 36 48
16h00 32 47 10
17h00 42 65 92
18h00 57 66 151
19h00 44 55 90
20h00 114 145 257
21h00 35 58 68
22h00 11 12 15
23h00 13 9 15
24h00 10 9 7

数据文件内容(count.dat)

text
11 11 9
7 13 11
14 17 20
11 13 9
43 51 69
38 46 76
61 132 186
75 135 180
38 88 115
28 36 55
12 12 14
18 27 30
18 19 29
17 15 18
19 36 48
32 47 10
42 65 92
57 66 151
44 55 90
114 145 257
35 58 68
11 12 15
13 9 15
10 9 7

MATLAB 操作示例

matlab
% 加载数据
load count.dat

% 查看数据维度
[n, p] = size(count)  % n = 24(观测次数),p = 3(位置数量)

% 创建时间轴并绘图
t = 1:n;
set(0, 'defaultaxeslinestyleorder', '-|--|-.')
set(0, 'defaultaxescolororder', [0 0 0])
plot(t, count)
legend('Location 1', 'Location 2', 'Location 3', 0)
xlabel('Time'), ylabel('Vehicle Count'), grid on

说明:以上数据是对 3 个对象 进行 24 次观测 的结果,体现了 MATLAB 按列存储和分析数据的特点。

 
 

    TAGS:
    发表评论