【发布时间】:2017-11-11 03:01:23
【问题描述】:
我在 Matlab 中有一个由 1000 个二进制元素组成的矩阵,如下所示:
M = [011,011,001,010,011,000,010,100,100,...,...]
我想用其他数字替换一些元素:000 By 000000, 110 By 000001, 001 By 00001, 100 By 0001, 101 By 001, 010 By 01, 011 By 1。
我使用了这种方法,但不起作用。它有什么问题?
for i = 1:1000
if M(i) == 000
M(i) = 000000;
elseif M(i) == 110
M(i) = 000001;
elseif M(i) == 001
M(i) = 00001;
elseif M(i) == 100
M(i) = 0001;
elseif M(i) == 101
M(i) = 001;
elseif M(i) == 010
M(i) = 01;
else
M(i) = 1;
end
end
请帮帮我:)
【问题讨论】:
-
为什么这不起作用?你有什么问题?它不会取代所需的值吗?还是它做了不正确的替换?
-
它不会替换值
-
在 MATLAB 中,
000和001等文字数字被解释为浮点十进制数。相等运算符 (==) 检查这些数字的值是否相同,所以像000 == 000000这样的表达式基本上是检查零是否等于零,它确实如此。这同样适用于赋值 (=),所以if M(i) == 000; M(i) = 000000; end表示如果M(i)等于 0,则将零赋值给M(i),这并没有做任何事情。