Using different functions in a loop

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 个评论

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.

请先登录,再进行评论。

 采纳的回答

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

更多回答(1 个)

for ii = 1:length(function_cell)
zzz = feval(function_cell{ii}, inputs);
end

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

版本

R2021a

标签

Community Treasure Hunt

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

Start Hunting!

Translated by