当前位置: 首页 > 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

相关文章:

  • 牛客周赛 Round 92-题解
  • 软件测试都有什么???
  • LLM 论文精读(四)LLM Post-Training: A Deep Dive into Reasoning Large Language Models
  • 多模态大语言模型arxiv论文略读(六十九)
  • 数据结构练习:顺序表题目
  • 《智能网联汽车 自动驾驶系统设计运行条件》 GB/T 45312-2025——解读
  • 04.three官方示例+编辑器+AI快速学习webgl_animation_skinning_additive_blending
  • 黑马k8s(三)
  • 【js基础笔记] - 包含es6 类的使用
  • 实战项目4(05)
  • MATLAB中矩阵和数组的区别
  • 05.three官方示例+编辑器+AI快速学习three.js webgl - animation - skinning - ik
  • Python Bug 修复案例分析:多线程数据竞争引发的bug 两种修复方法
  • HTTP/1.1 host虚拟主机详解
  • jsAPI
  • MySQL 索引(二)
  • 点和体素哪个好
  • JavaEE--文件操作和IO
  • 【计算机网络】NAT技术、内网穿透与代理服务器全解析:原理、应用及实践
  • 用C语言实现的——一个支持完整增删查改功能的二叉排序树BST管理系统,通过控制台实现用户与数据结构的交互操作。
  • 金价大跌!足金饰品每克一夜便宜14元,涨势是否已终结?
  • 普京提议于15日在土耳其恢复俄乌直接谈判
  • 巴基斯坦空袭印度多地空军基地,巴战机进入印领空
  • 兵韬志略|美2026国防预算未达1万亿,但仍寻求“暗度陈仓”
  • 中方就乌克兰危机提出新倡议?外交部:中方立场没有变化
  • 青年与人工智能共未来,上海创新创业青年50人论坛徐汇分论坛举办