0

所以基本上这就是我想要做的:

我有十进制值 3 这样:

x=3

现在我得到这样的二进制格式:

s = dec2bin(x,3)
s = 011

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

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

A = [0 1 1]

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

4

3 回答 3

2

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

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

(ASCII 中的 0 是 48)

于 2012-04-23T19:00:12.980 回答
0

你也可以这样做:

x=3;
binNumber = dec2bin(x,3);
A=sprintf('%s',binNumber) - '0';
于 2012-04-24T12:51:37.970 回答
0

这是一种方法:

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

ans =

     0     1     1

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

于 2012-04-23T18:59:08.993 回答