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

1 Stimme

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.
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