Combination of 4 Element
1 回表示 (過去 30 日間)
古いコメントを表示
Machmud Roby Alhamidi
2019 年 10 月 21 日
編集済み: Andrei Bobrov
2019 年 10 月 22 日
How do i put this to the simple way?
bl is a cell contained one or two elements
a1 = cell2mat(bl(1));
a2 = cell2mat(bl(2));
a3 = cell2mat([bl(1) bl(2)]);
a4 = cell2mat(bl(3));
a5 = cell2mat([bl(1) bl(3)]);
a6 = cell2mat([bl(2) bl(3)]);
a7 = cell2mat([bl(1) bl(2) bl(3)]);
a8 = cell2mat(bl(4));
a9 = cell2mat([bl(1) bl(4)]);
a10 = cell2mat([bl(2) bl(4)]);
a11 = cell2mat([bl(1) bl(2) bl(4)]);
a12 = cell2mat([bl(3) bl(4)]);
a13 = cell2mat([bl(1) bl(3) bl(4)]);
a14 = cell2mat([bl(2) bl(3) bl(4)]);
a15 = cell2mat([bl(1) bl(2) bl(3) bl(4)]);
i tried using
for i=1:4
a{i}=combnk(bl,i);
end
but end up with cell in cell element, and it is hard to access.
thank you.
0 件のコメント
採用された回答
Jos (10584)
2019 年 10 月 21 日
I make use of my function NCHOOSE, available here:
% bl is a cell array with four elements, each cell has 1 or 2 elements.
bl = {1 , [2 3], 4, [5 6]}
bi = nchoose(1:numel(bl))
a = cellfun(@(k) [bl{k}], bi, 'un', 0 )
その他の回答 (1 件)
Andrei Bobrov
2019 年 10 月 21 日
編集済み: Andrei Bobrov
2019 年 10 月 22 日
bl = cellfun(@(x)x(:)',bl,'un',0);
n = numel(bl);
ii = cell(n,1);
for i = 1:n
ii{i} = num2cell(nchoosek(1:4,i),2);
end
a = cellfun(@(x)[bl{x}],cat(1,ii{:}),'un',0);
5 件のコメント
参考
カテゴリ
Help Center および File Exchange で Multidimensional Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!