我有一个数组a=[0 1 0 1 1 0]
,我想将该数组的内容转换为数字 ( a=010110
)。我怎么做?
我也想相反:如果我有一个数字b=100101
,我想得到一个数组a=[1 0 0 1 0 1]
感谢帮助
不是最优雅的,但从矩阵到数字:
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
将数字转换为字符串时使用的八度精度在哪里。这需要足够大以容纳您正在转换的数字。
这是您正在尝试做的一件非常奇怪的事情,很可能有更好的方法来做到这一点。你的问题到底是什么?你想做什么需要你将向量转换为字符串?
为了回答您的问题,您可以将数字向量转换为sprintf
. 以下内容适用于整数(有关如何处理其他人的详细信息,请参阅printf文档)。
octave> a = [ 0 1 0 1 0 0]
a =
0 1 0 1 0 0
octave> sprintf ("%i", a)
ans = 010100