Advertisement

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]。

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

  • 零矩阵
复制代码
    Z = zeros(2, 3);

    
    Matlab
    
    
  • 所有元素都是1的矩阵
复制代码
    oneMatrix = ones(2, 3);

    
    Matlab
    
    
  • 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!

全部评论 (0)

还没有任何评论哟~