Creating an array of vectors

5 views (last 30 days)
B Rogers
B Rogers on 1 Jul 2018
Commented: B Rogers on 1 Jul 2018
Hello everyone. I have a list of 3d vectors representing positions in space and need to generate an array (A) with the following form.
In 2d: X=[X0 X1 X2 ... Xn] Y=[Y0 Y1 Y2 ... Yn]
A=[X0 Y0; X0 Y1; X0 Y2; X1 Y0; X1 Y1; X1 Y2; X2 Y0; X2 Y1; X2 Y2; ... ; Xn Yn]
As mentioned, I'll actually need it in 3d. I provided the 2d example for simplicity.
Thank you for your help!!
  2 Comments
Walter Roberson
Walter Roberson on 1 Jul 2018
Is every X to be used with every Y, or is it only adjacent coordinates? Like *2 linked to *1, *2, *3 but not *0 ?
B Rogers
B Rogers on 1 Jul 2018
Every X is paired with every Y.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 1 Jul 2018
For the case of every point linked to every other point:
[T1, T2, T3] = ndgrid(X, Y, Z);
A = [T1(:), T2(:), T3(:)];
  1 Comment
B Rogers
B Rogers on 1 Jul 2018
I knew there must be a way easier than how I was trying to do it. This works perfectly. Thank You Walter.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!