2014-12-04 64 views
0

MATLAB存儲分別爲0001分別爲01。我怎樣才能讓MATLAB店000001作爲01而不是01只有...這裏是我的代碼..我談論與<-- only..In事實的陳述我想輸入的結果作爲初始羣體(染色體)到遺傳算法。如何將00存儲爲00而不是0

function [x]=abc() 
r=randi([0 3],1,20); 
for i=1:20 
     if r(i)==0 
      x(i)=00; %// <-- 
     elseif r(i)==1 
      x(i)=01; %// <-- 
     elseif r(i)==2 
      x(i)=10; 
     elseif r(i)==3 
      ex(i)=11; 
     end 
    end 
end 
+1

如何在矩陣中存儲兩列? – 2014-12-04 08:33:57

+1

或者作爲一個字符串。 – Dan 2014-12-04 08:36:09

+1

存儲'00'是什麼意思? 「0」和「00」是相同的整數。 – 2014-12-04 08:37:17

回答

4

看起來你要存儲的數字的二進制表示,這樣你就可以使用函數dec2bin

和最好的事情,你甚至不需要一個循環;)

r=randi([0 3],1,20); 
x = dec2bin(r,2) ; 

>> x 
x = 
10 
00 
11 
11 
10 
11 
10 
01 
... 
+0

感謝代碼...這對我來說真的很有用.....我還有一個問題....是可能的(在「randi()」函數中)有更多的3與2相比......同樣更多的2相比1等等......我的意思是我們可以給他們分配概率......例如概率如0.4到3,0.3到2,0.2到1和0.1到0. – 2014-12-04 09:58:19

+0

感謝您的反饋意見。很高興知道我們什麼時候有用。至於爲發生概率分配權重,請看[這個答案](http://stackoverflow.com/questions/2977497 /加權隨機數合MATLAB/2977602#2977602) – Hoki 2014-12-04 10:09:07

相關問題