Use a for loop to generate function arguments

14 visualizaciones (últimos 30 días)
Georgios Pyrgiotakis
Georgios Pyrgiotakis el 8 de Dic. de 2022
Comentada: Voss el 9 de Dic. de 2022
I want to use a function myfunction in a loop that can take an increasing number of arguments. I also want to save the result into a variable that each time has a different name. The result is also a vector. For example
for i=1:50
data_i=myfunction(d,d,d,...) %The number of arguments will nicrease
end
In other words I want to create this:
i=1 data_1=myfunction(d)
i=2 data_2=myfunction(d, d)
i=3 data_3=myfunction(d, d, d)
i=4 data_4=myfunction(d, d, d, d)
i=5 data_5=myfunction(d, d, d, d, d)
I found some similar questions but none of the answers were suitable.
Thanks for your help.

Respuesta aceptada

Voss
Voss el 8 de Dic. de 2022
n = 50;
data = cell(1,n); % cell array to contain the output from my_function for all iterations
input_args = {}; % cell array to contain input arguments for my_function
for ii = 1:n
input_args{ii} = d; % add a new input argument
data{ii} = my_function(input_args{:}); % call my_function with all the input arguments defined so far,
end % and put the result in cell ii of data.
  2 comentarios
Georgios Pyrgiotakis
Georgios Pyrgiotakis el 9 de Dic. de 2022
Thank you that's what I needed.
Voss
Voss el 9 de Dic. de 2022
You're welcome!

Iniciar sesión para comentar.

Más respuestas (1)

VBBV
VBBV el 8 de Dic. de 2022
data_i(i)=myfunction(d,d,d,...)
  3 comentarios
Georgios Pyrgiotakis
Georgios Pyrgiotakis el 8 de Dic. de 2022
the funciton output is a vector and I want to keep it separate.
data_1=[ ...]
data_2=[ ...]
data_3=[ ...]
VBBV
VBBV el 8 de Dic. de 2022
data_i{i}=myfunction(d,d,d,...)
In that case use a cell array

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by