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

New to MATLAB?

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

Asked by C Zeng

C Zeng (view profile)

on 24 May 2012
Accepted Answer by Daniel

Daniel (view profile)

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

Daniel (view profile)

on 24 May 2012

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

Sean de Wolski

Sean de Wolski (view profile)

on 24 May 2012

huh, your fullfact one is better anyway.

C Zeng

C Zeng (view profile)

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

C Zeng (view profile)

Tags

Products

No products are associated with this question.

2 Answers

Answer by Daniel

Daniel (view profile)

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

C Zeng (view profile)

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

Daniel (view profile)

on 25 May 2012

See my edit.

C Zeng

C Zeng (view profile)

on 25 May 2012

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

Thank you so much!

Daniel

Daniel (view profile)

Answer by Daniel

Daniel (view profile)

on 24 May 2012

0 Comments

Daniel

Daniel (view profile)

Contact us