Asked by Anton van den Bedem
on 12 Jun 2019

I'm trying to create two vectors from two points created from a set of data. The data set contains 3106 values. I need something like a loop for this to work, so i can plot the length of these two vectors over time.

fyi: The vectors are the force projected on the ground while running.

In the end I need an array of the length of both vectors.

This is what i got so far:

j = 1:10:length(Data.Time)

x0_l=Data.XPC_FP1COP(j,1);

y0_l=zeros(length(Data.Time),1);

z0_l=Data.XPC_FP1COP(j,2);

x0_r=Data.XPC_FP2COP(j,1);

y0_r=zeros(length(Data.Time),1);

z0_r=Data.XPC_FP2COP(j,2);

x_l=Data.XPC_FP1GRF(j,1);

y_l=Data.XPC_FP1GRF(j,1);

z_l=Data.XPC_FP1GRF(j,1);

x_r=Data.XPC_FP2GRF(j,1);

y_r=Data.XPC_FP2GRF(j,1);

z_r=Data.XPC_FP2GRF(j,1);

Ground_l = [x0_l,y0_l,z0_l];

Ground_r = [x0_r,y0_r,z0_r];

Top_l = [x_l,y_l,z_l];

Top_r = [x_l,y_l,z_l];

F_l = Ground_l - Top_l

F_r = Ground_r - Top_r

Answer by Matt J
on 12 Jun 2019

Edited by Matt J
on 12 Jun 2019

Accepted Answer

I think this would complete your code.

Times=1:10:length(Data.Time);

J=numel(Times);

F=nan(J,3);

for j = 1:J

x0 = Data.XPC_FP1COP(j,1);

y0 = zeros(length(j),1);

z0 = Data.XPC_FP1COP(j,2);

x = Data.XPC_FP1GRF(j,1);

y = Data.XPC_FP1GRF(j,2);

z = Data.XPC_FP1GRF(j,3);

Start = [x0,y0,z0];

End = [x,y,z];

F(j,:) = End - Start;

end

plot(vecnorm(F,2,2))

Guillaume
on 12 Jun 2019

Is there any point to the loops? I would assume that:

rows = 1:10:numel(Data.Time); %and if Data is a table use height(Data)

F = Data.XPC_FP1GRF(rows, 1:3) - [Data.XPC_FP1COP(rows, 1), zeros(numel(rows), 1), Data.XPC_FP1COP(rows, 3)];

plot(vecnorm(F, 2, 2));

would achieve the same result.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 3 Comments

## Guillaume (view profile)

## Direct link to this comment

https://in.mathworks.com/matlabcentral/answers/466678-creating-a-vector-from-two-points-using-3-coordinates#comment_713996

## Anton van den Bedem (view profile)

## Direct link to this comment

https://in.mathworks.com/matlabcentral/answers/466678-creating-a-vector-from-two-points-using-3-coordinates#comment_714034

## Guillaume (view profile)

## Direct link to this comment

https://in.mathworks.com/matlabcentral/answers/466678-creating-a-vector-from-two-points-using-3-coordinates#comment_714039

Sign in to comment.