How to use default values with deal()?

3 vues (au cours des 30 derniers jours)
Mr M.
Mr M. le 14 Nov 2014
Commenté : Guillaume le 15 Nov 2014
I use the fallowing method in a function to assign parameter values:
parameters = [1,2,3];
temp_param = num2cell(parameters);
[p1,p2,p3] = deal(temp_param{:});
It is possible to use default values somehow (with a simple compressed syntax)?
So if parameters = [1,2] I still want to use [p1,p2,p3] = ... but let p3=0 by default.

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 14 Nov 2014
Modifié(e) : Azzi Abdelmalek le 14 Nov 2014
parameters = [1 2];
temp_param = num2cell(parameters)
temp_param(numel(temp_param)+1:3)=num2cell(zeros(1,3-numel(temp_param)))
[p1,p2,p3] = deal(temp_param{:})
  2 commentaires
Jan
Jan le 15 Nov 2014
Modifié(e) : Jan le 15 Nov 2014
Or simpler:
temp_param(numel(temp_param)+1:3) = {0};
This works also, if the wanted length is larger.
Guillaume
Guillaume le 15 Nov 2014
Note that similar to your previous question, the deal is completely unnecessary.
[p1, p2, p3] = temp_param{:};

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical 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