Use a for loop to generate function arguments

12 Ansichten (letzte 30 Tage)
Georgios Pyrgiotakis
Georgios Pyrgiotakis am 8 Dez. 2022
Kommentiert: Voss am 9 Dez. 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.

Akzeptierte Antwort

Voss
Voss am 8 Dez. 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 Kommentare
Georgios Pyrgiotakis
Georgios Pyrgiotakis am 9 Dez. 2022
Thank you that's what I needed.
Voss
Voss am 9 Dez. 2022
You're welcome!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by