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

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

Please familiarize with the formatting capabilites on: http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup
Especially with the code section.
How does this not work?
If I use N = 4; I get an 81x4 matrix of all possibilities. 3^N is 81.
etc. for all N.
Please elaborate on what doesn't work and please post this as a comment in your other question.
@Sean you can double check your solution with unique(M, 'rows'), and it appears answers are repeated.
huh, your fullfact one is better anyway.
C Zeng
C Zeng 2012년 5월 25일
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.

댓글을 달려면 로그인하십시오.

 채택된 답변

Daniel Shub
Daniel Shub 2012년 5월 24일

3 개 추천

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

One remark: needs Stat Toolbox.
I will add the wiki: http://en.wikipedia.org/wiki/Design_of_experiments
Alternatively a very useful FEX submission: http://www.mathworks.com/matlabcentral/fileexchange/24325-combinator-combinations-and-permutations
@Daniel: thank you, always glad to learn somethign new!
@Oleg it is worth taking a look at the code of fullfact. Usually I can have a vague idea what a function is doing pretty quickly, in this case I have no idea.
"Doesn't matter had s.."
Somehow the citation sounds legit.
C Zeng
C Zeng 2012년 5월 25일
Daniel, thank you! If the dimension is N, how can I change it to N-dim vector? Say fullfact([3,3,3...,3])-1?
Yes, or even better repmat(3, N, 1)
C Zeng
C Zeng 2012년 5월 25일
Thank you, Oleg, your links are awesome!
C Zeng
C Zeng 2012년 5월 25일
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?
See my edit.
C Zeng
C Zeng 2012년 5월 25일
Oh, yes, or using combinator.m file:
combinator(3,N)-1
Thank you so much!

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

태그

질문:

2012년 5월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by