using 2 indexs for loop

1 次查看(过去 30 天)
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 个评论
madhan ravi
madhan ravi 2019-3-21
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
Morten Jørgensen 2019-3-21
mBall is a 15001x3 array.
but im only using the first 2 columms
my output should be a 15001x14 array

请先登录,再进行评论。

采纳的回答

Thorsten
Thorsten 2019-3-21
for i=1:length(mHome)
for k=1:2:size(mHome,2)-1
output1(i,k)=pdist([mHome(i,k:k+1);mBall(i,1:2)]);
end
end
  1 个评论
Morten Jørgensen
Morten Jørgensen 2019-3-22
many thanks.
the only problem is that the output is a 15001x27 array and it should be a 15001x27 array.
right now everyother column is a colum with 0

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by