How to use default values with deal()?

3 Ansichten (letzte 30 Tage)
Mr M.
Mr M. am 14 Nov. 2014
Kommentiert: Guillaume am 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.

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 14 Nov. 2014
Bearbeitet: Azzi Abdelmalek am 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 Kommentare
Jan
Jan am 15 Nov. 2014
Bearbeitet: Jan am 15 Nov. 2014
Or simpler:
temp_param(numel(temp_param)+1:3) = {0};
This works also, if the wanted length is larger.
Guillaume
Guillaume am 15 Nov. 2014
Note that similar to your previous question, the deal is completely unnecessary.
[p1, p2, p3] = temp_param{:};

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by