如何从Matlab中的字符串创建数组数组?如何从MATLAB中的字符串创建数组数组?
例如,我有这样的字符串:
>> str = dec2bin(7);
s = 111
我所需要的阵列[1 1 1]
。怎么做?
我看到strread
函数strread 但我很难与非空格字符串输入一起使用它。
如何从Matlab中的字符串创建数组数组?如何从MATLAB中的字符串创建数组数组?
例如,我有这样的字符串:
>> str = dec2bin(7);
s = 111
我所需要的阵列[1 1 1]
。怎么做?
我看到strread
函数strread 但我很难与非空格字符串输入一起使用它。
标准解决方案是使用张贴由育该溶液中,
a = (str == '1');
其产生的逻辑结果。如果你需要一个双,
a = double(str == '1');
甚至只是:
a = +(str == '1');
也许最简单的寻找解决方案是这样的一个:
a = str - 48;
虽然我觉得最后是作为对最明显它能做什么。我更喜欢易于阅读和理解目的的代码。这个目标最好通过第二个解决方案来满足,即恕我直言。
我想,天真:
n = length(s);
myArray = zeros(1,n)
for i = 1:n
myArray(i) = double(s(i));
,其中“双()”是什么命令是改变一个字符串元素的双精度数,如果这确实是你想要的。
答案是使用 “bitget”
> x = bitget(7,1:3);
> class(bitget(7,1:3))
ans =
double
结果是双。
随着strread
: a = strread('123', '%c')
非常感谢。我不再需要字符串了;) – 2011-12-21 07:23:49