在Matlab中将字符串值(char的数组)转换为矩阵

时间:2012-04-23 18:29:09

标签: matlab

基本上这就是我想要做的事情:

我有十进制值3:

x=3

现在我得到二进制格式:

s = dec2bin(x,3)
s = 011

s的格式是一个字符串(正确吗?)。

现在我想将此值转换为矩阵,以便对其进行矩阵运算。就这样:

A = [0 1 1]

但我似乎无法做到这一点。我已经尝试过str2mat和cell2mat但没有结果。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

如果您100%确定只会获得0和1,请使用:

a = '001';
b = double(a)-48;

(ASCII为48时为0)

答案 1 :(得分:0)

这是一种方式:

>> cellfun(@str2num, cellstr(s'))'

ans =

     0     1     1

正如您所注意到的,MATLAB对于字符串操作并不是那么好。 :)

答案 2 :(得分:0)

您也可以这样做:

x=3;
binNumber = dec2bin(x,3);
A=sprintf('%s',binNumber) - '0';