ndgrid with unknown number of output arguments

1 vue (au cours des 30 derniers jours)
Jin
Jin le 19 Avr 2011
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 commentaires
Laura Proctor
Laura Proctor le 19 Avr 2011
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 le 1 Août 2011
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.

Connectez-vous pour commenter.

Réponse acceptée

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

Plus de réponses (0)

Catégories

En savoir plus sur Entering Commands dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by