2012-03-13 99 views
0
I have a function as below 
    function m=narkisos(a,b,c,x,y,z,t,rho) 
    m=a.*x+b.*y-z+c*exp(t-rho) 
    end 

然後,在腳本中,我使用:四在多次循環

clear all; 
    a=1;b=2;c=3; 
    m=zeros(3,4,5,6); 
    t=[1 2 3]'; z=[2 3 4 5]'; 
    for i=1:length(t) 
    for j=1:length(z) 
    for s=1:5 
    for r=1:6 
    [email protected](rho)narkisos(a,b,c,s,r,z(j),t(i),rho); 
      m(i,j,s,r)=quad(f,0,t(i)); 
    end 
    end 
    end 
    end 

這一部分,我需要到另一個環(4個以上)再次使用我的narkisos後,但固定指標,例如對於s = 2,r = 3。我應該在每個循環中定義另一個函數還是有任何方法來調用它?我不喜歡在每個循環中再次寫入narkisos,因爲這會降低代碼的速度。

for i=1:length(t) 
    for j=1:length(z) 

    **[email protected](rho)narkisos(a,b,c,2,3,z(j),t(i),rho);** 
      m(i,j,2,3)=quad(f,0,t(i)); 

    end 
    end 

非常感謝您的幫助,

+0

爲什麼要結束投票?這似乎達到了這個問題的明確程度,即這裏的問題有50%達到了。有一點解釋,這是一個合理的,與主題相關的編程相關問題。 – 2012-03-14 09:08:56

+0

@高性能標誌,對不起馬克,但我恐怕我不明白你的解釋。我關閉了投票選項,有些如何? – user1018331 2012-03-14 14:22:27

回答

1

如果我理解你的問題,你想memoize調用你的函數narkisos。這並不完全直截了當,但我看到Loren on the Art of Matlab已經涵蓋了這個話題。如果您還不熟悉Loren的博客,這是一個很好的開始,我多年來一直使用Matlab從中學到很多東西。