matlab - 检查矩阵中的所有特定值是否按特定顺序存在

标签 matlab

我有几个具有不同整数的矩阵 <1x500>,现在我检查我感兴趣的值是否存在(在本例中为 30、40、50):

if any(val == 30) && any(val == 40) && any(val == 50)

然后我从矩阵中绘制这个图,一切正常,除了我想更改它只在它们以 30, 40, 50 的顺序出现时才给出 true。现在它只检查它们是否存在于矩阵任意顺序,可以是 40、10、30,无论如何它都会给出 true。

以下是矩阵的输出:0,0,0,0,0,10,50,50,50,50,0,40,40,40,0,0,0,30 ,30,30(这将给出错误) 0,0,0,0,0,30,30,30,40,40,50,50,50,40,0,0,0,30,30,30(这应为真)

如果您能帮助我完成我的爱好项目,我将非常高兴。

最佳答案

我不确定您为什么选择不使用我在上一个问题中建议的 ismember,但您可以使用 ismember 的两个输出 来解决这个问题。首先,您可以使用第一个输出来确保所有值都出现,并使用第二个输出(即每个值第一次出现的索引)通过将索引值与排序版本进行比较来确定它们的顺序是否正确指数值。

b = [0,0,0,0,0,30,30,30,40,40,50,50,50,40,0,0,0,30,30,30];

[bool, location] = ismember([30 40 50], b);

present_and_in_order = all(bool) && issorted(location)
%   true

关于matlab - 检查矩阵中的所有特定值是否按特定顺序存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38363021/

相关文章:

arrays - 将矢量值加起来直到阈值,然后重新开始

matlab - 使用 Matlab 和 opencv 进行基本矩阵估计

matlab - 如何绘制向量中所有点之间的线?

matlab - 为什么复数共轭转置在Matlab中默认

matlab - 省略号在 Matlab 函数的参数列表中是什么意思?

matlab - 在matlab中快速计算图像的梯度

algorithm - 等效于数学公式的 matlab 代码(特征脸算法的协方差矩阵)

python - Python 中是否有与 matlab 的 imtransform 函数等效的函数?

matlab - 如何从 avi 文件中绘制线条并获取角度?

c++ - 使用 SWIG 对 C++ 库进行 Matlab 绑定(bind)