更改矢量的值

时间:2014-02-13 12:38:39

标签: matlab

我有以下matlab代码,但它无法正常工作:

r = y > 0 % logical check
r(r == 0) = -1 % set all zeros to minus one

为什么它不能像预期那样工作?

1 个答案:

答案 0 :(得分:5)

逻辑向量只能包含布尔值10。如果有任何其他价值, -1被分配给逻辑向量的元素,该值将被转换为两个可能值之一。

如果要在向量中包含其他值,请考虑转换其数据类型。

在您目前的情况下,您可能希望执行以下操作:

r = y > 0;
r = (double(r) * 2) - 1;

或者正如@Dan在评论中所建议的那样,你也可以直接这样做:

r = (y > 0) * 2 - 1;