how to run function for several times with different variables

18 次查看(过去 30 天)
I have something like this:
a=5
b=8
c=9
d=11
%a,b,c and d are function inputs
n=a*0.1:a*0.1:a
for i=1:length(n)
"function"
end
but I need to run function replacing 'a' in 'n' with 'b','c' and 'd' at once and save the data so I can compare it. it is a sensitivity analysis for this function outputs.
  2 个评论
dpb
dpb 2019-3-5
To do every point for all four variables would be quad-nested for loops and you'd end up with 4^10= 1048576 outputs. Depending on how expensive function() is in compute time, this might take a while...
Typically one uses response surface methods or similar to do such studies that replace the detail function with a (typically) quadratic surface over the design space. (Myers, RH, Response Surface Methodology, Allyn and Bacon, 1971 was my "go to" and still a favorite).
Asliddin Komilov
Asliddin Komilov 2019-3-12
that is too difficult for me, I did it for each variable separately (see below). thank you

请先登录,再进行评论。

回答(2 个)

Dennis
Dennis 2019-3-5
In your example you do not need more than one variable:
a=[5 8 9 11];
for i=1:numel(a)
n=a(i)*0.1:a(i)*0.1:a(i);
for k=1:numel(n)
%function
end
end

Asliddin Komilov
Asliddin Komilov 2019-3-12
编辑:Stephen23 2019-3-12
I just saved the loop for each variable.
a=5
b=8
c=9
d=11
%a,b,c and d are function inputs
n=a*0.1:a*0.1:a
for i=1:length(n)
"function"
end
save file_a
a=a(end);
clear "function outputs"
%--------------------------
n=b*0.1:b*0.1:b
for i=1:length(n)
"function"
end
save file_b
b=b(end);
clear "function outputs"
%---------------------------
..........

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by