2017-05-31 224 views
0

我試圖整合功能F其定義爲:積分分段函數的matlab

function F   
    x = -3:0.1:3; 
    F = zeros(1, length(x)); 
    for i = 1:length(x) 
     if (1.4<= x(i)) && (x(i) <= 1.6) 
      F(i) = x(i).^2; 
     else 
      F(i) = 2; 
     end 
    end 
end 

integral功能給了我一個錯誤說,有太多的爭論。我認爲功能被定義爲一個點的問題?

+4

請爲我們所有人的動搖,正確縮進代碼。另外,向我們展示錯誤的代碼。你基本上不了解如何調用積分。函數的形式是'f(x)',你的F沒有輸入。你不應該定義'x',否則'F'是一個數組,而不是一個函數。 –

+0

問題出在你稱之爲「積分」功能的那一行,向我們展示*你的代碼行! – Wolfie

+0

我稱之爲int函數,如 積分(F,0,1) 和我得到錯誤 錯誤使用F 輸出參數太多。 正如你所說我認爲我的函數F是一個數組,如果這個問題,那麼我怎麼可以將F定義爲一個函數? – Imran

回答

0

與您的功能有關的問題是,integral無法將您提供的參數傳遞給您的函數F。該函數不知道它只能從你創建的向量中拉出某些元素。如果你重寫你的函數,使得對於一個輸入(或x值),返回F的輸出,然後integral將工作,因爲你需要給定兩個值之間的集成。