how do i assign an array to i?

1 次查看(过去 30 天)
i want to make an array in choosing PP.
RS=
1 28702 1 7 5 2 3 9 8 4 11 6 10 12
2 28764 9 2 7 6 3 1 4 5 12 10 11 8
3 36438 4 1 9 2 10 7 12 8 6 3 5 11
4 37192 12 7 10 8 1 9 4 6 5 11 3 2
5 41182 9 4 10 7 1 3 6 8 5 2 11 12
6 43442 4 10 2 3 1 5 6 12 9 8 11 7
7 48650 8 7 1 4 9 10 2 11 12 3 5 6
8 51154 12 2 8 1 3 5 7 4 11 9 6 10
9 51412 10 6 4 2 7 1 8 5 3 12 9 11
10 52796 8 2 4 5 3 6 1 7 12 11 9 10
11 54018 5 4 2 8 7 10 11 3 6 12 1 9
12 65420 6 7 2 8 3 4 12 1 11 9 10 5
cp=0.4; % Crossover Percentage
np=2*round(cp*r/2); % Number of Offsprings (Parents)
valp=np/2;
v=valp;
n1=length(RS(:,1));
PP=RS([1:v,n1-v+1:end],3:end);
% for cycle crossover used p1, p2,p3,p4 saja
p1 = PP(1,:);
p2 = PP(2,:);
p3 = PP(3,:);
p4 = PP(4,:);
instead of doing it manually, p1, p2, p3 and p4.. i want it to be an array so that whevever u change the value i didnt have to write it manually
however i got an error "Unable to perform assignment because the indices on the left side are not compatible with the size of the right side" when i do it like
for i=1:np
p(i) = PP (i,:);
end
below is the result of PP
PP =
1. 12 3 9 11 6 10 4 7 5 1 8 2
2. 2 6 9 8 10 11 5 4 12 3 1 7
3. 10 4 2 12 3 8 9 5 1 6 11 7
4. 8 1 10 12 5 9 7 6 11 3 4 2

采纳的回答

madhan ravi
madhan ravi 2019-1-6
编辑:madhan ravi 2019-1-6
P=cell(1,np); % preallocate
for i=1:np
P{i} = PP(i,:);
end
celldisp(P)
vertcat(P{:}) % double array

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by