Utilizing Matlab for 2 "for loop" calculation

Hi
I have two for loops, in which I am calculating my functions. I call many function inside of it and results of those functions are 2x2 matrices. Ex:
for m = 1:100
for n = 1:500
func1Result = func1(m,n,...); % Result is a 2x2 matrix
func2Result = func2(m,n,funct1Result..); %Result is a 2x2 matrix
..
Result1 = funcxResult1*funcxResult2*...;
...
end
end
However, the code is not efficient as I have 2 for loops. I want to utilize Matlab's linear operation advantage. However, I could not come up a solution about it. How can I do that so that I can fasten my computation?
Regards

 採用された回答

Murat
Murat 2014 年 6 月 29 日

0 投票

I found a way to do it. I spent most of the time to calculate bessel functions which are inside of my func1,func2 etc.My code runs for 5 min. But, if I calculate all bessel function and assign it to a matrix, then my code runs 45 sec. I use again 2 for loops. But, calculation is now faster.

その他の回答 (1 件)

dpb
dpb 2014 年 6 月 29 日

0 投票

Presuming only the last result is actually needed...
[x y]=meshgrid(1:M,1:n);
result=func2(x,y,func1(x,y));

1 件のコメント

Murat
Murat 2014 年 6 月 29 日
Thanks for your answer. However, when I use meshgrid, I cannot multiply those submatrices -which are 2x2-. I would again have to use for loops to multiply my 2x2 submatrices.

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

カテゴリ

ヘルプ センター および File ExchangeSpecial Functions についてさらに検索

製品

質問済み:

2014 年 6 月 29 日

回答済み:

2014 年 6 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by