2014-12-04 31 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

相关问题