I cant CREATE array the rand() in for loop..... Firstly, generate 72 bit binary number in 20 times. After, i need use the second, tenth or fifth generated random binary number.
2 次查看(过去 30 天)
显示 更早的评论
But, error:
In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in ga_function2 (line 9)
random_chromosome(popSize) = round(rand(1, 72));
random_chromosome = [1;20];
for popSize = 1 : 1 : 20
random_chromosome(popSize) = round(rand(1, 72));
end
0 个评论
采纳的回答
Stephen23
2016-1-6
编辑:Stephen23
2016-1-6
Because popSize is scalar, the code
random_chromosome(popSize)
refers to one element of the array random_chromosome, but rand(1, 72) is an array with 72 elements.
You are trying to fit seventy-two elements into the space of one element in a matrix, which obviously does not fit and causes the error. One better solution would be to avoid that inefficient loop altogether:
X = randi(2,20,72)-1;
produces a matrix X of size 20x72, where each row corresponds to one of your "random binary number". For example the second number is simply the second row:
X(2,:)
You can learn more about basic MATLAB usage by doing these tutorials:
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!