How to use default values with deal()?

2 views (last 30 days)
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.

Accepted Answer

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

Sign in to comment.

More Answers (0)

Categories

Find more on Data Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!