Matlab-使用逻辑值进行索引

Posted studyer_domi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab-使用逻辑值进行索引相关的知识,希望对你有一定的参考价值。

使用 true 和 false 逻辑指示符可以对数组进行索引,在处理条件语句时尤其便利。例如,假设您想知道矩阵 A 中的元素是否小于另一个矩阵 B 中的对应元素。当 A 中的元素小于 B 中的对应元素时,小于号运算符返回元素为 1 的逻辑数组。

A = [1 2 6; 4 3 6]A = 2×3
     1     2     6     4     3     6

B = [0 3 7; 3 7 5]B = 2×3
     0     3     7     3     7     5

ind = A<Bind = 2x3 logical array
   0   1   1   0   1   0

现在已经知道满足条件的元素的位置,可以使用 ind 作为索引数组来检查各个值。MATLAB 将 ind 中值 1 的位置与 A 和 B 中的对应元素进行匹配,并在列向量中列出它们的值。​​​​​​​

Avals = A(ind)Avals = 3×1
     2     3     6

Bvals = B(ind)Bvals = 3×1
     3     7     7

MATLAB 中的 is 函数还返回逻辑数组,指示输入中的哪些元素满足特定条件。例如,使用 ismissing 函数检查 string 向量中的哪些元素是缺失值。​​​​​​​

str = ["A" "B" missing "D" "E" missing];ind = ismissing(str)ind = 1x6 logical array
   0   0   1   0   0   1

假设要查找非缺失值元素的值。将 ~ 运算符和索引向量 ind 结合使用即可实现此目的。

​​​​​​​

strvals = str(~ind)strvals = 1x4 string    "A"    "B"    "D"    "E"

 

以上是关于Matlab-使用逻辑值进行索引的主要内容,如果未能解决你的问题,请参考以下文章

Matlab错误:下标索引必须是实数正整数或逻辑数

MATLAB 下标索引必须是实数正整数或逻辑数

MATLAB 错误:下标索引必须是实数正整数或逻辑数

MATLAB之逻辑

(Matlab) 使用 min 函数返回的索引进行维度索引

Matlab的数组索引