ndgrid with unknown number of output arguments

조회 수: 1 (최근 30일)
Jin
Jin 2011년 4월 19일
Hi, I am trying to make something work using ndgrid. Here is a copy of the response:
a={0:5,0:1}
a =
[1x6 double] [1x2 double]
>> b=cell(1,2)
b =
[] []
>> b{1:2}=ndgrid(a{:}) ??? The right hand side of this assignment has too few values to satisfy the left hand side.
Obviously ndgrid cannot recognize b{1:2} as two output arguments. The truth is I generally don't know how many elements are there in "a" a priori. Is there an easy way to deal with it, aside from using "eval"? I'm using version 2010a. Thank you very much.
Jin
  댓글 수: 2
Laura Proctor
Laura Proctor 2011년 4월 19일
Is there a reason that you're using cell arrays rather than doubles in this case? What is it you're trying to do with NDGRID?
Jin
Jin 2011년 8월 1일
I may not know a priori how many vectors in "a{:}" are plaided, thus how many output are there going to be. I could write
[b1,b2,b3,...,bn]=ndgrid(a1,a2,...,an)
but I don't know what n is.

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

채택된 답변

Oleg Komarov
Oleg Komarov 2011년 4월 19일
You were very close:
a = {0:5,0:1,3:10};
b = cell(1,numel(a));
[b{:}] = ndgrid(a{:});

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Entering Commands에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by