matlab - 基于多种条件的逻辑索引

标签 matlab

我正在尝试返回基于多个搜索条件的逻辑向量。我认为这很简单,而且确实可能​​是这样。

所以我只是尝试一个非常简单的例子。我有一个 double 类型的 10 x 1 向量,称为 myVec。如果 myVec 中的元素等于 5 或​​ 8,我希望返回 1,否则返回 0。

myVec
5
3 
8
9
1
8
5
6
7
5

我的结果向量应如下所示,

Result
1
0
1
0
0
1
1
0
0
1

我尝试过以下方法,

rl = find(myVec == 8 | myVec == 5);
rl = myVec == 8 | myVec == 5;

两次尝试都给出了消息,

错误:等号左侧的表达式不是有效的赋值目标。

更新

这是我正在玩的实际向量,

 myVec = [3 5 12 34 62 98 45 12 12 64 20 5 5 94 87 21 20]';

这是我尝试使用的代码行,它会引发错误,但看起来它应该可以工作,

 rl = myVec  == 12 | myVec  == 5 | myVec  = 20;

最佳答案

这应该可以解决问题:

myvec = 1:10;
vec = (myvec == 5 | myvec == 8)
vec =

     0     0     0     0     1     0     0     1     0     0

这在没有括号的情况下也有效,所以还有其他问题。 find 版本给出了元素的索引,也没有错误。实际上,我找不到重现您的错误消息的方法。

关于matlab - 基于多种条件的逻辑索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27938066/

相关文章:

matlab - 根据初始点的颜色值在 MATLAB 中为 voronoi 图着色

图像与数据库的比较

linux - 在 Linux 中将 Matlab 脚本作为批处理作业运行

java - 多次运行Java程序时如何防止打开新的MATLAB实例

python - 变换矩阵

windows - 有没有办法让现有的cmd窗口执行命令?

c++ - 在 matlab 中编写一个非常基本的 mex 函数

java - 从终端/JAVA 更改 MATLAB 中的目录

python - MATLAB 比 Python 快吗(简单的小实验)

matlab - 如何删除重复的行而不在matlab中重新排序