error in the code

4 Ansichten (letzte 30 Tage)
qas abd
qas abd am 1 Aug. 2024
Bearbeitet: qas abd am 13 Aug. 2024
erroe in string(j,n)=string(k,n);
Index in position 1 exceeds array bounds. Index must not exceed 3.
for k=1:Npop
for j=1:dim
busLocation(j,k)=busd(busLocation(j,k),1);
end
sdf= unique(busLocation(:,k));
while length(sdf)<dim
sdf=randi([2 length(busd(:,1))],dim,1);
for j=1:dim
sdf(j)=busd(sdf(j),1);
end
busLocation(:,k)=sdf;
sdf= unique(busLocation(:,k));
end
end
ndif = [0.28; 0.35; 0.39; 0.35; 0.27; 0.34; 0.40; 0.34; 0.25; 0.32];
for k = 1:Npop
mdif(k)= ndif(k);
end
nsw=length(string);
mpop = round(Npop/4);
for j = 1:mpop
minman = min(mdif(:));
for k = 1:Npop
if mdif(k)== minman
for n=1:nsw
string(j,n)=string(k,n);
end
mdif(k)= 1010;
break;
end
end
end
for j = 1:(Npop-mpop)
for bits=1:nsw
string(mpop +j,bits) = string(j,bits);
end
end ; end

Antworten (1)

Voss
Voss am 1 Aug. 2024
The first time this line is encountered:
string(j,n)=string(k,n);
k is 9, but string only has 3 rows. That's the reason for the error.
  2 Kommentare
qas abd
qas abd am 1 Aug. 2024
Thank you for your response, even this gives an error
string(j,n)=string(j,n);
Torsten
Torsten am 1 Aug. 2024
Bearbeitet: Torsten am 1 Aug. 2024
But this error occurs in the last loop:
% select another 75% of new population
for j = 1:(Npop-mpop)
for bits=1:nsw
string(mpop +j,bits) = string(j,bits);
end
end
Before entering this loop, "string" has size 3x10. But j runs up to 10-3 = 7 ...

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Dynamic System Models finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by