Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

(Ask again)Show every combination of N-dim vector.

Asked by C Zeng on 24 May 2012

Hello, I asked it the day before yesterday but the code some expert told does not work well.

He wrote:

[C{1:N}]=ndgrid(0:2);
M=reshape(vertcat(C{:}),[],N);

However, it does show 3^N rows, but not every combination of N-dim vector of {0,1,2}. Is there another way to show all 3^N combinations and put it in a matrix?

Thank you so much!

5 Comments

Daniel on 24 May 2012

@Sean you can double check your solution with unique(M, 'rows'), and it appears answers are repeated.

Sean de Wolski on 24 May 2012

huh, your fullfact one is better anyway.

C Zeng on 25 May 2012

Yes, Sean, your code gives 3^N rows, but they have repeated one. Also I do not understand what does it mean? It seems that it is going to construct a grid in graphics, right? But I want all factorial combinations.

C Zeng

Tags

Products

No products are associated with this question.

2 Answers

Answer by Daniel on 24 May 2012
Accepted answer

I will repeat the answer I gave to your original question

x = fullfact([3,3,3])-1

EDIT

For a general N

N = 3;
x = fullfact(repmat(3, N, 1))-1

9 Comments

C Zeng on 25 May 2012

Daniel, I am confused here, your full factorial design works for my purpose. I am asking whether I can set the dimension N, so I do not need to input 3 N times. repmat(3, N, 1) does not give what I want here. Can you advise?

Daniel on 25 May 2012

See my edit.

C Zeng on 25 May 2012

Oh, yes, or using combinator.m file:
combinator(3,N)-1

Thank you so much!

Daniel
Answer by Daniel on 24 May 2012

0 Comments

Daniel

Contact us