所以基本上这就是我想要做的:
我有十进制值 3 这样:
x=3
现在我得到这样的二进制格式:
s = dec2bin(x,3)
s = 011
s 的格式是一个字符串(正确吗?)。
现在我想将此值转换为矩阵,以便对其进行矩阵运算。像这样:
A = [0 1 1]
但我似乎无法做到这一点。我已经尝试过 str2mat 和 cell2mat 但没有结果。有任何想法吗?
所以基本上这就是我想要做的:
我有十进制值 3 这样:
x=3
现在我得到这样的二进制格式:
s = dec2bin(x,3)
s = 011
s 的格式是一个字符串(正确吗?)。
现在我想将此值转换为矩阵,以便对其进行矩阵运算。像这样:
A = [0 1 1]
但我似乎无法做到这一点。我已经尝试过 str2mat 和 cell2mat 但没有结果。有任何想法吗?
如果您 100% 确定您只会得到 0 和 1,请使用:
a = '001';
b = double(a)-48;
(ASCII 中的 0 是 48)
你也可以这样做:
x=3;
binNumber = dec2bin(x,3);
A=sprintf('%s',binNumber) - '0';
这是一种方法:
>> cellfun(@str2num, cellstr(s'))'
ans =
0 1 1
正如您所注意到的,MATLAB 在字符串操作方面并不是那么好。:)