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!

相关推荐
A懿轩A1 小时前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
古希腊掌管学习的神1 小时前
[搜广推]王树森推荐系统——矩阵补充&最近邻查找
python·算法·机器学习·矩阵
云边有个稻草人1 小时前
【优选算法】—复写零(双指针算法)
笔记·算法·双指针算法
半盏茶香1 小时前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
忘梓.2 小时前
解锁动态规划的奥秘:从零到精通的创新思维解析(3)
算法·动态规划
Evand J2 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
LucianaiB2 小时前
探索CSDN博客数据:使用Python爬虫技术
开发语言·爬虫·python
Ronin3052 小时前
11.vector的介绍及模拟实现
开发语言·c++
计算机学长大白3 小时前
C中设计不允许继承的类的实现方法是什么?
c语言·开发语言
PieroPc4 小时前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel