Сочетания строк в Matlab?
У меня есть матрица W
в Matlab измерения nx2
и я хотел бы составить список 2x1
список ячеек в ячейке 1
возможная комбинация рядов W
взятый k
в то время и в камере 2
левые ряды W
,
Example:
n=9;
W=[0 1; 0 2; 0 3; 0 4; 0 5; 1 6; 2 6; 3 6];
k=1;
W_1=[{[0 1]}; {[0 2; 0 3; 0 4; 0 5; 1 6; 2 6; 3 6]}];
W_2=[{[0 2]}; {[0 1; 0 3; 0 4; 0 5; 1 6; 2 6; 3 6]}];
W_3=[{[0 3]}; {[0 1; 0 2; 0 4; 0 5; 1 6; 2 6; 3 6]}];
W_4=[{[0 4]}; {[0 1; 0 2; 0 3; 0 5; 1 6; 2 6; 3 6]}];
W_5=[{[0 5]}; {[0 1; 0 2; 0 3; 0 4; 1 6; 2 6; 3 6]}];
W_6=[{[1 6]}; {[0 1; 0 2; 0 3; 0 4; 0 5; 2 6; 3 6]}];
W_7=[{[2 6]}; {[0 1; 0 2; 0 3; 0 4; 0 5; 1 6; 3 6]}];
W_8=[{[3 6]}; {[0 1; 0 2; 0 3; 0 4; 0 5; 1 6; 2 6]}];
1 ответ
Попробуйте этот метод
cell1 = {};
W=[0 1; 0 2; 0 3; 0 4; 0 5; 1 6; 2 6; 3 6];
b = (1:size(W,1)).'
for i= 1:size(W,1)
cell1{end +1}= [ {W(ismember(b,i),:)}, {W(~ismember(b,i),:)}]
end
cell1 =
{1x2 cell} {1x2 cell} {1x2 cell} {1x2 cell} {1x2 cell} {1x2 cell} {1x2 cell} {1x2 cell}
>> cell1{1, 2}{1,1}
ans =
0 2
>> cell1{1, 2}{1,2}
ans =
0 1
0 3
0 4
0 5
1 6
2 6
3 6