2013-05-04 127 views
0

我有一個數組a=[0 1 0 1 1 0],我想將該數組的內容轉換爲數字(a=010110)。我怎麼做?Octave - array to number

而且我還要向相反: 如果我有一些b=100101,我想獲得一個數組a=[1 0 0 1 0 1]

感謝您的幫助

回答

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是Octave在將數字轉換爲字符串時使用的精度。這需要足夠大以容納您正在轉換的數字。

0

這是一件非常奇怪的事情,你試圖去做,很可能有更好的方法來做到這一點。什麼是你的問題?你想要做什麼,需要你將矢量轉換成字符串?

爲了回答你的問題,你可以轉換一個數字向量,與sprintf。以下內容適用於整數(請參閱printf文檔以獲取有關如何處理其他內容的詳細信息)。

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

    0 1 0 1 0 0 

octave> sprintf ("%i", a) 
ans = 010100