Azzera filtri
Azzera filtri

call function with multiparameter:what is the best solution?

1 visualizzazione (ultimi 30 giorni)
%WHAT IS best solution ?
%Solution A:
a)CaricoSistemi2Last_Struct(Settings,[])
b)CaricoSistemi2Last_Struct(Settings,mat)
function D_=CaricoSistemi2Last_Struct(Settings,mat)
if isempty(mat)
D1=load(Settings.tslist,'-mat');
D_=D1.StratList;
else
D_=mat;
end
....
....
end
%Solution B:
a)CaricoSistemi2Last_Struct(Settings)
b)CaricoSistemi2Last_Struct(Settings,mat)
function D_=CaricoSistemi2Last_Struct(Settings,mat)
if nargin<2
D1=load(Settings.tslist,'-mat');
D_=D1.StratList;
else
D_=mat;
end
....
....
end
  1 Commento
Les Beckham
Les Beckham il 13 Nov 2023
I would say that this is mostly a matter of personal preference.
Solution B is probably more commonly used. Solution A is often used if you have additional arguments after your "optional" second argument.

Accedi per commentare.

Risposta accettata

Chunru
Chunru il 14 Nov 2023
You could also use arguments block. doc arguments for more details.
a)CaricoSistemi2Last_Struct(Settings)
b)CaricoSistemi2Last_Struct(Settings,mat)
function D_=CaricoSistemi2Last_Struct(Settings,mat)
arguments
Settings
mat = []; % default
end
if isempty(mat)
D1=load(Settings.tslist,'-mat');
D_=D1.StratList;
end
% More codes
  3 Commenti
Chunru
Chunru il 14 Nov 2023
Modificato: Chunru il 14 Nov 2023
Matlab function arguments are positional, meaning that the positions are important.
For example, you can not call using second parameter CaricoSistemi2Last_Struct(mat) in the following code
function D_=CaricoSistemi2Last_Struct(Settings,mat)
arguments
Settings
mat = []; % default
end
If you do want to use the name-value-pair way of passing argument, you can do the following
function D_=CaricoSistemi2Last_Struct(options)
arguments
options.Settings = [] % your default
options.mat = []; % default
end
Then you can call the function CaricoSistemi2Last_Struct(mat=matval)
Again, doc arguments for more details.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Large Files and Big Data in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by