nested for loop

I was wondering if there was a way to write nested loops so they are more efficient. For example:
for a = 1:1:100
for b = .5:.1:3
x = bestfitfun(a,b);
end
end
the bestfitfun is a function that runs if statements and really isn't a bottleneck. Any suggestions would be greatly appreciated.
Thank you!

1 件のコメント

per isakson
per isakson 2012 年 4 月 16 日
in the signature of bestfit are a and b assumed to be scalars?

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

回答 (1 件)

Pavel Gorodetsky
Pavel Gorodetsky 2012 年 6 月 15 日

1 投票

if nesting is an issue, you can use one loop only:
a = 1:1:1000;
b = .5:.1:3;
N = length(a)*length(b);
[A,B] = meshgrid(a,b);
for ii = 1:N
x = bestfitfun(A(ii),B(ii));
end
of course, as per isakson implies, if your bestfitfun could take vectors as an input, and work in some vectorized form, you could loose the two loops altogether:
a = 1:1:1000;
b = .5:.1:3;
x = bestfitfun(a,b);

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

質問済み:

2012 年 4 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by