【发布时间】:2015-01-14 07:48:29
【问题描述】:
我正在尝试根据多个搜索条件返回一个逻辑向量。我认为这很简单,而且很可能就是这样。
所以我只是尝试一个非常简单的例子。我有一个双精度类型的向量 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;
【问题讨论】:
-
rl = myVec == 8 | myVec == 5;为我工作
-
你有没有给
rl预先分配了一些东西?如果您输入clearvars rl,然后输入第二种方法,您仍然会收到该错误吗? -
只是 clearvars rl 仍然得到同样的错误。我关闭了 Matlab 并重新开始,只是运行了更新中显示的两行,同样的错误。 Stewie Griffin 的例子对我有用
-
您可以尝试在ideone.com 上重新创建结果吗?查看this link 看看它确实有效。
-
好的,重新启动了我的电脑,它现在可以工作了。不知道为什么。我最终使用了 Stewie Griffin 所示的括号。然后也做了没有括号,它的工作。电脑几天没重启。仍然有点困惑为什么它不起作用
标签: matlab