Algorithm for a Loop in a Table

1 view (last 30 days)
ercan duzgun on 14 Aug 2021
Dear Matlab users,
I am trying to write a program with a loop. Assume that for each of the element of L, there are two solutions of M, and two solutions of N. I want to write them all on a table.
L=[1,2]'
M=[10,20,60,70]'
N=[100,200,500,600]'
Table=[
L(1) M(1) N(1)
L(1) M(1) N(2)
L(1) M(2) N(1)
L(1) M(2) N(2)
L(2) M(3) N(3)
L(2) M(3) N(4)
L(2) M(4) N(3)
L(2) M(4) N(4)]
Table should be like this. However, L vector doesn't have to have two elements. It might have more elements. If L has the third element for instance, the next line would be L(3) M(5) N(5).
Can you recommend how to write a Matlab code to generate this table?

Sulaymon Eshkabilov on 14 Aug 2021
In your case, you'd need to use hand entry. However, if your pattern is repeating then, you can employ replem() and get these.
L=[1, 2]'; L=repelem(L,4);
M=[10,20,60,70]'; M=repelem(M,2);
N=[100,200,500,600]'; N=repelem(N,2);
T= array2table([L, M, N], 'VariableNames', {'L', 'M', 'N'})
T = 8×3 table
L M N _ __ ___ 1 10 100 1 10 100 1 20 200 1 20 200 2 60 500 2 60 500 2 70 600 2 70 600
Sulaymon Eshkabilov on 14 Aug 2021
Most welcome

Simon Chan on 14 Aug 2021
Try this:
Col1 = repelem(L,4);
Col2 = repmat(M',2,1);
Col3 = repmat([N(1:2:end),N(2:2:end)]',2,1);
Table = [Col1 Col2(:) Col3(:)];
ercan duzgun on 14 Aug 2021
Thank you @Simon Chan