MATLAB基础:数组

今天我们继续学习MATLAB中的数组

我们在学习MATLAB时了解到,MATLAB作者秉持着"万物皆可矩阵"的思想企图将数学甚至世间万物使用矩阵表示出来,而矩阵的处理,自然成了这门语言的重中之重。

数组基础

在MATLAB中,数组是一个基本的数据类型,用于存储数值型数据。数组可以是数字的集合,可以是一维的(行向量或列向量),也可以是多维的(如矩阵或更高维的张量)。

向量

  1. 维度:向量是特殊的数组,它只有一维。它可以是一个行向量或列向量。
  2. 大小:向量的维度是 𝑛×1n×1(列向量)或 1×𝑛1×n(行向量),其中 𝑛n 是向量中的元素数量。
  3. 用途:向量通常用于表示数学上的点、方向、或物理量,它们可以进行标量乘法、向量加法和点积等操作。

例如:

复制代码
v_row = [1, 2, 3];  % 行向量
v_col = [1; 2; 3];  % 列向量

创建数组

  • 使用方括号 [] 来创建数组。
  • 在创建数组时","和"【空格】"来分隔相邻的元素,用";"来分隔相邻的每个列。
  • 使用冒号 : 来创建等差数列。例如:D = 1:5 会创建一个行向量 [1 2 3 4 5]D = 1:2:10会创建起始值为1步长为2,但不超过10的行向量[1 3 5 7 9]
  • 使用 linspace 函数来创建包含指定数量元素的等差数列。例如:E = linspace(0,10, 5)会创建一个从0开始到10结束,包含5个等间隔点的数列0.0,2.5,5.0,7.5,10.0

特殊矩阵的创建(两行三列)

  • 零矩阵
Matlab 复制代码
Z = zeros(2, 3);
  • 所有元素都是1的矩阵
Matlab 复制代码
oneMatrix = ones(2, 3);
  • eye:创建单位矩阵(对角线元素为1,其余为0)
复制代码
  I = eye(2, 3);
  • rand:创建一个元素在0,1区间内均匀分布的随机矩阵
复制代码
  R = rand(2, 3);
  • randn:创建一个元素为标准正态分布(均值为0,方差为1)的随机矩阵
复制代码
  RN = randn(2, 3);
  • diag:创建对角矩阵或提取矩阵的对角线元素
复制代码
  D = diag([1 2 3]); % 创建对角矩阵
  • magic:创建一个魔方矩阵(每行、每列和对角线上的元素和相等)
复制代码
  M = magic(3); % 注意:这里需要方阵的尺寸

每个函数都有其特定的用途,可以根据需要选择使用。

数组操作

  • **查询:**A(m,n)
  • **更改:**A(m,n)=2
  • **删除:**A(m,n)=\[\](将对应位元素改为空)
  • **提取:**A(1,3,2),依次提取1,3,2位的元素
  • 索引 :使用括号 () 来索引数组中的元素。例如:C(2,3) 会返回矩阵 C 中第二行第三列的元素。
  • 切片 :可以提取数组的一部分。例如:C(1:2, 2:3) 会提取矩阵 C 的第一和第二行以及第二和第三列的子矩阵。
  • 连接 :使用方括号 [] 或函数如 cathorzcat(水平连接)和 vertcat(垂直连接)来连接数组。
  • 转置 :使用单引号 ' 来转置数组。例如:C'
  • **计算数组尺寸:**size(A),返回2 3,意为两行三列。
  • **计算向量尺寸:**length(A)(如果放入矩阵,则显示最长的行或列)

矩阵处理函数

sum:对每一列求和,求和后将每一列的和显示为行向量。

prod:对每一列求乘积。

min:求列的最小值

max:求列的最大值

数组的运算

基本运算

  • A+B与A-B:加与减
  • K**A或A**K:数乘矩阵
  • K+A与K-A:K加(减)A的每个元素
  • A.^K,K.^A:数组乘方
  • A.*B:数组成数组
  • K./A:数除以数组
  • 左除A.\B=右除B./A:数组除法

数学函数

矩阵的数字函数也是按元素额运算,使其通常的函数号,如sin(A),cos(A),acos(A),tan(A),cot(A),exp(A),sqrt(A)等。

fix 向0取整

ceil 向+∞取整

floor:向-∞取整

rem 除法余数

mod:模除求余

abs:绝对值(模)

real 复数实部

imag:复数虚部

angle 复数幅角

conj:复数共轭

log 自然对数ln

log10:以10为底的对数

复制代码
result = log10(3);
//以十为底三的对数

关系与逻辑运算

  • <、<= 小于、小于等于

  • >、>= 大于、大于等于

  • ==、~= 等于、不等于

  • &(与)、|(或)、~(非)

  • any、all 、find

在MATLAB中,"真"用1表示,"假"用0,而逻辑运算中,所有非零元素作为1处理

今天我们学习到这里,明天继续学习MATLAB!

相关推荐
lvwangshu3 小时前
图论:LCA、树的直径、树的重心、二分图与 Tarjan 缩点
算法·图论
Jackson_GJH3 小时前
Qt 右键自定义菜单的实现
开发语言·c++·qt
CoderYanger4 小时前
前端基础——JavaScript(WebAPI)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
302wanger4 小时前
干与湿:AI 拿走脑力之后,人剩下什么
算法
计算机编程-吉哥5 小时前
脑肿瘤MRI智能识别系统:基于深度学习的像素级脑肿瘤语义分割平台【计算机毕业设计选题推荐】
人工智能·python·深度学习·算法·毕业设计·课程设计·大数据毕业设计选题推荐
小木_.5 小时前
Python 离线识别滑块缺口距离,项目推荐
开发语言·python·滑块识别·人机验证·滑块缺口·缺口识别
liliangcsdn5 小时前
因子权重矩阵处理-因子权重收缩Shrinkage算法的探索
开发语言·python·机器学习
用户204937554955 小时前
端侧语音部署踩坑:模型能跑不等于终端真的能用
后端·算法
shehuiyuelaiyuehao5 小时前
算法39,位运算,消失的两个数字
java·数据结构·算法
ZiLing5 小时前
2026 ROS 2 Lyrical 踩坑实录(一):编译与依赖——rosdep、现代 CMake 与 CMake 4.x
算法