Dear all,
I need to generate different indicators based on the same data but from a set of functions in a loop. Is there a way to specify different functions in a for loop?
Thanks.
Joe

1 commentaire

I seem to find a clumsy way myself involving eval:
for ii = 1:length(function_cell{ii})
hhh = eval(['@', function_cell{ii}]); % define a function handle for the ii-th function
zzz = hhh(inputs);
end
If there is any better approach, please let me know. Thanks.

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 28 Mai 2021
Modifié(e) : Stephen23 le 28 Mai 2021
Convert strings-of-function-names to function handles (which they should be anyway):
C = {'sin','sqrt','abs'};
C = cellfun(@str2func,C,'uni',0); % convert
for k = 1:numel(C)
C{k}(-1) % call
end
ans = -0.8415
ans = 0.0000 + 1.0000i
ans = 1

Plus de réponses (1)

Jan
Jan le 28 Mai 2021
for ii = 1:length(function_cell)
zzz = feval(function_cell{ii}, inputs);
end

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Produits

Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by