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.

 Réponse acceptée

Jos (10584)
Jos (10584) le 21 Oct 2019

0 votes

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 )

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 21 Oct 2019
Modifié(e) : Andrei Bobrov le 22 Oct 2019

0 votes

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 commentaires

Machmud Roby Alhamidi
Machmud Roby Alhamidi le 21 Oct 2019
Thank you for the response,
i don't get it with
a = cellfun(@(x)bl{x},iii,'un',0);
what is "iii"?
Guillaume
Guillaume le 21 Oct 2019
iii is probably ii. Using meaningful variable names does help beginners understand answers.
Machmud Roby Alhamidi
Machmud Roby Alhamidi le 21 Oct 2019
i found this error if i change iii to ii
"Function 'subsindex' is not defined for values of class 'cell'."
Andrei Bobrov
Andrei Bobrov le 21 Oct 2019
I'm fix.
Machmud Roby Alhamidi
Machmud Roby Alhamidi le 22 Oct 2019
Thank you Andrei Bobrov

Connectez-vous pour commenter.

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by