Run function multiple times

11 vues (au cours des 30 derniers jours)
Joel
Joel le 13 Avr 2023
Modifié(e) : Sachin Lodhi le 12 Juin 2024
Hi
I have the following function and input
Abonnemang=24200;
filename="Data.xlsx"
[max_val,t0_pos1,peak_width]=FLEXfun(Abonnemang,filename);
The output variables have these formats:
Now I want the function to run two times, so that the output variables have the size 9x2. I tried this but of course it did not work, but maybe you see my point. The function is also generating graphs. They become misformed when I try to run the function 2 times, even without a loop.
Abonnemang=[24200 20000];
filename=["Data.xlsx" "skottar.xlsx"];
for i=1:2
[max_val(:,i),t0_pos1(:,i),peak_width(:,i)]=FLEXfun(Abonnemang(i),filename(i));
end

Réponses (1)

Sachin Lodhi
Sachin Lodhi le 12 Juin 2024
Modifié(e) : Sachin Lodhi le 12 Juin 2024
Hello Joel,
To achieve the desired output where each of the variables 'max_val', 't0_pos1', and 'peak_width' have the size '9x2' after running the 'FLEXfun' function twice with different inputs, and to manage the graph generation issue, first pre-allocate the output variables, where each variable has size '9x2' and then assign values to these variables, as shown in the code snippet below:
% Pre-allocate matrices
numOutputs = 9;
max_val = zeros(numOutputs, 2);
t0_pos1 = zeros(numOutputs, 2);
peak_width = zeros(numOutputs, 2);
% Run loop
for i = 1:2
[max_val(:,i), t0_pos1(:,i), peak_width(:,i)] = FLEXfun(Abonnemang(i), filename(i));
end
Note: Ensure that the outputs from FLEXfun are correctly sized (9 elements long). If FLEXfun inherently does not return outputs of this size, you might need to adjust FLEXfun or handle the outputs accordingly.
I hope this helps!

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by