Arrays 如何在MATLAB中从字符串创建数字数组?

Arrays 如何在MATLAB中从字符串创建数字数组?,arrays,string,matlab,Arrays,String,Matlab,如何在Matlab中从字符串创建数字数组 例如,我有这样一个字符串: >> str = dec2bin(7); s = 111 我需要数组[1]。怎么做 我看到stread功能 但我很难将其用于非空格字符串输入。我天真地认为: n = length(s); myArray = zeros(1,n) for i = 1:n myArray(i) = double(s(i)); 其中,“double()”是用于将字符串元素更改为双精度数字的命令,如果这确实是您想要的。答案是使用“bi

如何在Matlab中从字符串创建数字数组

例如,我有这样一个字符串:

>> str = dec2bin(7);
s = 111
我需要数组
[1]
。怎么做

我看到
stread
功能 但我很难将其用于非空格字符串输入。

我天真地认为:

n = length(s);
myArray = zeros(1,n)
for i = 1:n
myArray(i) = double(s(i));
其中,“double()”是用于将字符串元素更改为双精度数字的命令,如果这确实是您想要的。

答案是使用“bitget”

结果是双倍的。

With
stread
a=strread('123','%c')

刚刚回答了另一个问题,发现其中的一部分可能在这里有用

实际上,您可以将此类字符串转换为逻辑向量:

a = str == '1';

您可以将其转换为其他类型,例如
double(a)

标准解决方案是使用yuk发布的解决方案

a = (str == '1');
这会产生一个合乎逻辑的结果。如果你需要双人房

a = double(str == '1');
甚至只是:

a = +(str == '1');
也许最简单的解决方案是:

a = str - 48;

尽管我认为最后一个是最不明显的。我更喜欢易于阅读和理解的代码。第二种解决方案最能实现这一目标,IMHO。

非常感谢。我不再需要字符串;)
a = str - 48;