using 2 indexs for loop
Afficher commentaires plus anciens
Hi
how can i optimize this loop, if i want to include another indexing
mHome is an 15001x28 array
mBall is an 15001x3 array
for i=1:length(mHome)
output1(i,1)=pdist([mHome(i,1:2);mBall(i,1:2)]);
output1(i,2)=pdist([mHome(i,3:4);mBall(i,1:2)]);
output1(i,3)=pdist([mHome(i,5:6);mBall(i,1:2)]);
output1(i,4)=pdist([mHome(i,7:8);mBall(i,1:2)]);
output1(i,5)=pdist([mHome(i,9:10);mBall(i,1:2)]);
output1(i,6)=pdist([mHome(i,11:12);mBall(i,1:2)]);
output1(i,7)=pdist([mHome(i,13:14);mBall(i,1:2)]);
output1(i,8)=pdist([mHome(i,15:16);mBall(i,1:2)]);
output1(i,9)=pdist([mHome(i,17:18);mBall(i,1:2)]);
output1(i,10)=pdist([mHome(i,19:20);mBall(i,1:2)]);
output1(i,11)=pdist([mHome(i,21:22);mBall(i,1:2)]);
output1(i,12)=pdist([mHome(i,23:24);mBall(i,1:2)]);
output1(i,13)=pdist([mHome(i,25:26);mBall(i,1:2)]);
output1(i,14)=pdist([mHome(i,27:28);mBall(i,1:2)]);
end
% I have tried this but it does not work
for i=1:length(mHome)
for k=1:size(mHome,2)
output1(i,k)=pdist([mHome(i,k);mBall(i,1:2)]);
end
end
3 commentaires
madhan ravi
le 21 Mar 2019
output1(k,1)=pdist([mHome(k,(k*2)-1:k*2);mBall(k,1:2)]);
% Replaced i with k, assuming you have preallocated before the loop (good practice).
Index in position 2 exceeds array bounds (must not exceed 28).
Error in Velocity (line 76)
output2(k,1)=pdist([mHome(k,(k*2)-1:k*2);mBall(k,1:2)]);
i get this error mHome is a 15001x28 array
madhan ravi
le 21 Mar 2019
Even after the below?
for k=1:size(mHome,2)
output1(k,1)=pdist([mHome(k,(k*2)-1:k*2);mBall(k,1:2)]);
end
What the size of mBall?
Morten Jørgensen
le 21 Mar 2019
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!