如何在Matlab中从字符串创建数值数组?
例如我有这样一个字符串:
>> str = dec2bin(7);
s = 111
我需要数组[1 1 1]
。怎么做?
我看到strread
函数strread
但是我很难将它用于非空格字符串输入。
答案 0 :(得分:2)
答案 1 :(得分:2)
标准解决方案是使用yuk发布的解决方案,
a = (str == '1');
产生逻辑结果。如果你需要一个双,
a = double(str == '1');
甚至只是:
a = +(str == '1');
也许最简单的解决方案就是这个:
a = str - 48;
虽然我认为最后一点是最不明显的。我更喜欢易于阅读和理解目的的代码。第二个解决方案,恕我直言,最能满足这一目标。
答案 2 :(得分:1)
我想,天真地:
n = length(s);
myArray = zeros(1,n)
for i = 1:n
myArray(i) = double(s(i));
其中“double()”是用于将字符串元素更改为双精度数的命令,如果这确实是您想要的。
答案 3 :(得分:1)
答案是使用“bitget”
> x = bitget(7,1:3);
> class(bitget(7,1:3))
ans =
double
结果是双倍。
答案 4 :(得分:1)
strread
:
a = strread('123', '%c')