更改矢量的值

Jim*_*Boy 2 matlab

我有以下matlab代码,但它不能按预期工作:

r = y > 0 % logical check
r(r == 0) = -1 % set all zeros to minus one
Run Code Online (Sandbox Code Playgroud)

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

sga*_*zvi 5

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

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

在您当前的场景中,您可能希望执行以下操作:

r = y > 0;
r = (double(r) * 2) - 1;
Run Code Online (Sandbox Code Playgroud)

或者如评论中@Dan所建议的那样,您也可以直接执行此操作:

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