Alex_McAvoy

想要成为渔夫的猎手

Matlab 数组

【数组创建】

基本方式

利用 [] , ; 组合定义数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>> [1,2,3] % 行向量
ans =
1 2 3

>> [1;2;3] % 列向量
ans =
1
2
3

>> [1,2,3;4,5,6;7,8,9] % 矩阵
ans =
1 2 3
4 5 6
7 8 9

>> [] % 空矩阵
ans =
[]

说明:由于数组的存储特性,无法删除数组中的元素,因此当想要删除数组中的某个元素时,将其赋值为空数组 [] 即可

等差方式生成数组

  • a:b:生成从 a 开始,到 b 结束,公差为 1 的等差数组
  • a:step:b : 生成从 a 开始,到 b 结束,公差为 step 的等差数组
  • linspace(a,b):生成从 a 到 b 之间,具有 100 个元素的等差数组,公差自动计算
  • linspace(a,b,k):生成从 a 到 b 之间,具有 k 个元素的等差数组,公差自动计算

等比方式生成数组

生成方式:

  • logspace(a,b):生成从 $10^a$ 到 $10^b$ 之间,具有 100 个元素的等比数组,公比自动计算
  • logspace(a,b,k):生成从 $10^a$ 到 $10^b$ 之间,具有 k 个元素的等比数组,公比自动计算

应用:由于 logspace() 的范围,因此在实际生成数组时,常与 log10() 函数共同使用

1
2
3
>> logspace(log10(1),log10(15),5)
ans =
1.0000 1.9680 3.8730 7.6220 15.0000

【数组运算】

数值运算

详见 矩阵基础操作 中的矩阵运算与数组运算的对比

关系运算

  • 关系运算符:==~=><>=<=
  • 数值对数组:依据关系表达式,返回该数值与数组对应元素相运算的逻辑结果
  • 数组对数组:
    • 要求:两数组维度必须一致
    • 返回值:依据关系表达式,数组对应元素相运算的逻辑结果

逻辑运算

  • 逻辑运算符:
    • |:或,左右两端存在一个为真即为真,否则为假
    • &:与,左右两端全为真才为真,否则为假
    • ~:非,A 若为真,非 A 为假;A 若为假,非 A 为真
  • 数值对数组:依据逻辑表达式,返回该数值与数组对应元素相运算的逻辑结果
  • 数组对数组:
    • 要求:两数组维度必须一致
    • 返回值:依据逻辑表达式,数组对应元素相运算的逻辑结果

逻辑函数

  • xor(A,B)
    • 异或:左右两端不同为真,相同为假
    • A 或 B 中存在标量:返回该标量与数组元素逐个异或后,组成的行向量
    • A 或 B 是维度相同的两数组:返回两数组对应元素异或后,组成的数组
  • any(A)
    • A 是向量:若所有的元素存在非零,则返回 1,如果所有元素为零,则返回 0
    • A 是矩阵:如果某一列全为零,则该列返回 1,如果某一列存在一个元素为非零,则该列返回 1,由此构成一个行向量
  • all(A)
    • A 是向量:若所有的元素都是非零,则返回 1,如果有一个元素为零,则返回 0
    • A 是矩阵:如果某一列有一个元素为零,则该列返回 0,如果某一列全为非零,则该列返回 1,由此构成一个行向量
  • any(A,k)
    • k=1 时:等价于 any(A)
    • k=2 时:
      • A 是向量:等价于 any(A)
      • A 是矩阵:如果某一行全为零,则该列返回 1,如果某一行存在一个元素为非零,则该列返回 1,由此构成一个列向量
  • all(A,k)
    • k=1 时:等价于 all(A)
    • k=2 时:
      • A 是向量:等价于 all(A)
      • A 是矩阵:如果某一行有一个元素为零,则该列返回 0,如果某一行全为非零,则该列返回 1,由此构成一个列向量
感谢您对我的支持,让我继续努力分享有用的技术与知识点!