0

我有一个数组a=[0 1 0 1 1 0],我想将该数组的内容转换为数字 ( a=010110)。我怎么做?

我也想相反:如果我有一个数字b=100101,我想得到一个数组a=[1 0 0 1 0 1]

感谢帮助

4

2 回答 2

0

不是最优雅的,但从矩阵到数字:

a = [1 0 1 1 0 1];
a = mat2str(a);                                % returns '[1,0,1,1,0,1]'
a = strrep(substr(a, 2, numel(a)-2), ',', ''); % remove ','  ,  '['  ,  ']'
a = str2num(a);                                % convert to number                               

数字到矩阵:

a = 110011001;
a = num2str(a, 1000000)-'0';

1000000将数字转换为字符串时使用的八度精度在哪里。这需要足够大以容纳您正在转换的数字。

于 2013-05-04T10:54:44.003 回答
0

这是您正在尝试做的一件非常奇怪的事情,很可能有更好的方法来做到这一点。你的问题到底是什么?你想做什么需要你将向量转换为字符串?

为了回答您的问题,您可以将数字向量转换为sprintf. 以下内容适用于整数(有关如何处理其他人的详细信息,请参阅printf文档)。

octave> a = [ 0 1 0 1 0 0]
a =

   0   1   0   1   0   0

octave> sprintf ("%i", a)
ans = 010100
于 2013-05-04T15:11:44.367 回答