how to run function for several times with different variables

11 ビュー (過去 30 日間)
Asliddin Komilov
Asliddin Komilov 2019 年 3 月 5 日
コメント済み: Stephen23 2019 年 3 月 12 日
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
  2 件のコメント
dpb
dpb 2019 年 3 月 5 日
"but I need to run function replacing 'a' in 'n' with 'b','c' and 'd'..."
Asliddin Komilov
Asliddin Komilov 2019 年 3 月 12 日
thanks, but it gave error inside th function, so I decided to skip it.

サインインしてコメントする。


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"
%---------------------------
..........
  1 件のコメント
Stephen23
Stephen23 2019 年 3 月 12 日
You could save the bother by simply putting your data into one array and using indexing.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGenomics and Next Generation Sequencing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by