MATLAB 矩阵与数组操作基础教程


前言

在 MATLAB 里,矩阵和数组是其核心数据结构,掌握它们的操作是进行高效计算和数据处理的关键。下面为你详细介绍 MATLAB 矩阵与数组的基础操作。


环境配置

MATLAB下载安装教程:https://blog.csdn.net/2501_91538706/article/details/147232213

一、创建矩阵与数组

(一)直接输入法

使用方括号[]来创建矩阵或数组,元素之间可用空格或逗号分隔,不同行用分号分隔。

  • 创建行向量

a = [1 2 3 4 5]; % 用空格分隔元素
b = [1, 2, 3, 4, 5]; % 用逗号分隔元素,效果与上面相同

  • 创建列向量

c = [1; 2; 3; 4; 5]; % 分号表示换行

  • 创建二维矩阵

A = [1 2 3; 4 5 6; 7 8 9]; % 3行3列矩阵
B = [1, 2, 3; 4, 5, 6]; % 2行3列矩阵

(二)特殊矩阵生成函数

MATLAB 提供了许多函数用于生成特殊矩阵。

  • 全零矩阵:zeros(m, n)生成 m 行 n 列的全零矩阵。

Z = zeros(3, 4); % 生成3行4列的全零矩阵

  • 全一矩阵:ones(m, n)生成 m 行 n 列的全一矩阵。

O = ones(2, 3); % 生成2行3列的全一矩阵

  • 单位矩阵:eye(n)生成 n 阶单位矩阵(主对角线元素为 1,其余为 0)。

I = eye(3); % 生成3阶单位矩阵

  • 随机矩阵:rand(m, n)生成 m 行 n 列的随机矩阵,元素值在 0 到 1 之间均匀分布。

R = rand(2, 2); % 生成2行2列的随机矩阵

(三)使用冒号表达式创建数组

冒号表达式的格式为start:step:end,用于创建从start开始,以step为步长,到end结束的数组。

x = 1:5; % 等同于 [1 2 3 4 5],默认步长为1
y = 0:2:10; % 生成 [0 2 4 6 8 10],步长为2
z = 5👎1; % 生成 [5 4 3 2 1],步长为-1

二、矩阵与数组的基本操作

(一)访问元素

MATLAB 中矩阵和数组的索引从 1 开始。

  • 访问单个元素:使用矩阵名(行索引, 列索引)访问矩阵中指定位置的元素。

A = [1 2 3; 4 5 6; 7 8 9];
a12 = A(1, 2); % 获取第1行第2列的元素,结果为2
a33 = A(3, 3); % 获取第3行第3列的元素,结果为9

  • 访问整行或整列:使用冒号:表示所有行或列。

row2 = A(2, 😃; % 获取第2行的所有元素,结果为 [4 5 6]
col3 = A(:, 3); % 获取第3列的所有元素,结果为 [3; 6; 9]

  • 访问子矩阵:使用行列索引范围获取子矩阵。

subA = A(1:2, 2:3); % 获取第1到2行,第2到3列的子矩阵,结果为 [2 3; 5 6]

(二)修改元素

直接通过索引对元素进行赋值来修改矩阵或数组中的元素。

A = [1 2 3; 4 5 6; 7 8 9];
A(2, 2) = 10; % 将第2行第2列的元素修改为10,修改后A变为 [1 2 3; 4 10 6; 7 8 9]
A(3, 😃 = [11 12 13]; % 将第3行的元素修改为 [11 12 13]

(三)矩阵运算

  • 基本算术运算:矩阵的加+、减-、乘*、除/、乘方^等运算。

A = [1 2; 3 4];
B = [5 6; 7 8];
C = A + B; % 矩阵加法,结果为 [6 8; 10 12]
D = A * B; % 矩阵乘法,结果为 [19 22; 43 50]
E = A.^2; % 矩阵元素的平方,结果为 [1 4; 9 16],注意这里的点号

  • 点运算:点运算用于对矩阵的对应元素进行运算,包括点乘.*、点除./、点乘方.^等。

A = [1 2; 3 4];
B = [5 6; 7 8];
C = A .* B; % 对应元素相乘,结果为 [5 12; 21 32]
D = A ./ B; % 对应元素相除,结果为 [0.2 0.3333; 0.4286 0.5]

(四)数组操作函数

MATLAB 提供了丰富的函数用于数组操作。

  • 求矩阵大小:size()函数返回矩阵的行数和列数。

A = [1 2 3; 4 5 6];
[m, n] = size(A); % m为行数2,n为列数3

  • 矩阵转置:使用单引号’进行矩阵转置。

A = [1 2 3; 4 5 6];
B = A’; % 转置后B为 [1 4; 2 5; 3 6]

  • 矩阵拼接:使用方括号[]进行矩阵的拼接。

A = [1 2; 3 4];
B = [5 6; 7 8];
C = [A B]; % 水平拼接,结果为 [1 2 5 6; 3 4 7 8]
D = [A; B]; % 垂直拼接,结果为 [1 2; 3 4; 5 6; 7 8]

三、矩阵与数组的高级操作

(一)线性代数运算

  • 矩阵求逆:inv()函数用于求方阵的逆矩阵。

A = [1 2; 3 4];
B = inv(A); % 求A的逆矩阵

  • 特征值和特征向量:eig()函数用于计算矩阵的特征值和特征向量。

A = [1 2; 3 4];
[eigenvectors, eigenvalues] = eig(A); % 计算特征值和特征向量

  • 矩阵分解:如 LU 分解、QR 分解等。

A = [1 2; 3 4];
[L, U] = lu(A); % LU分解
[Q, R] = qr(A); % QR分解

(二)向量化运算

向量化运算是 MATLAB 的一大优势,它可以避免使用循环,提高计算效率。

% 传统循环方式
a = [1 2 3 4 5];
b = zeros(1, 5);
for i = 1:length(a)
b(i) = a(i)^2;
end

% 向量化方式
a = [1 2 3 4 5];
b = a.^2; % 直接对数组每个元素进行平方运算,效率更高

四、实例演示

(一)计算矩阵的行列式

A = [1 2 3; 4 5 6; 7 8 9];
det_A = det(A); % 计算矩阵A的行列式,结果为0

(二)解线性方程组

求解方程组:

x + 2y + 3z = 1
4x + 5y + 6z = 2
7x + 8y + 10z = 3

A = [1 2 3; 4 5 6; 7 8 10];
b = [1; 2; 3];
x = A\b; % 求解线性方程组Ax = b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值