当前位置: 首页 > news >正文

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

http://www.xdnf.cn/news/389035.html

相关文章:

  • 量化交易系统开发经验分享--回测框架调研
  • 股票回购、股票减持和股票解禁对股票价格影响的综合分析
  • Synchronized与锁升级
  • 经典工具箱、常见工具、软件合集【免费无广告】
  • 【C/C++】跟我一起学_C++同步机制效率对比与优化策略
  • 云计算中的虚拟化:成本节省、可扩展性与灾难恢复的完美结合
  • mybatis执行sql过程
  • 设计模式简述(十九)桥梁模式
  • 红黑树(C++)
  • 大模型对时尚穿搭体验的革新与重塑
  • 强化学习入门:马尔科夫过程
  • Linux系统中的Web服务器部署及优化
  • 5java集合框架
  • # Ollama 实现大模型调用
  • 无侵入式弹窗体验_探索 Chrome 的 Close Watcher API
  • Android Canvas API 详细说明与示例
  • python【扩展库】websockets
  • idea中的vcs不见了,如何解决
  • 探秘 DeerFlow:字节跳动开源的科研创作魔法盒!
  • 温湿度传感器SHT4X
  • 【C++】AVL树实现
  • 害怕和别人发生冲突怎么办? --deepseek
  • [特殊字符] 免税商品优选购物商城系统 | Java + SpringBoot + Vue | 前后端分离实战项目分享
  • 线程的一些事(2)
  • 拍摄学习笔记【前期】(一)曝光
  • SQL 数据库监控:SQL语句监控工具与实践案例
  • 【Redis】Redis的主从复制
  • Linux常见指令解析(三)
  • jenkins built-in节点如何删除
  • TeledyneLeCroy在OFC2025 EA展台上展示了其400G/800G的全包围的测试解决方案,满足了UEC联盟和UALINK联盟的技术需求