MATLAB Answers

Combination of 4 Element

2 ビュー (過去 30 日間)
Machmud Roby Alhamidi
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)
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 件のコメント

Machmud Roby Alhamidi
Machmud Roby Alhamidi 2019 年 10 月 22 日
wow, this is works
thank you

サインインしてコメントする。

その他の回答 (1 件)

Andrei Bobrov
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 件のコメント

表示 2 件の古いコメント
Machmud Roby Alhamidi
Machmud Roby Alhamidi 2019 年 10 月 21 日
i found this error if i change iii to ii
"Function 'subsindex' is not defined for values of class 'cell'."
Andrei Bobrov
Andrei Bobrov 2019 年 10 月 21 日
I'm fix.
Machmud Roby Alhamidi
Machmud Roby Alhamidi 2019 年 10 月 22 日
Thank you Andrei Bobrov

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by