2011-04-05 78 views
4

我正試圖學習MATLAB;我嘗試了一個簡單的步驟,因子函數。MATLAB函數語法

factorial.m

function result = factorial (m) 
    if m == 1 
     result = m; 
    else 
     result = m .* factorial(m.-1); 
    end 

,然後調用它像這樣:

x = 2; 
f = factorial (x) 

,但我得到的是一個錯誤:

Missing variable or function.

回答

2
  1. 你有一個語法錯誤,在第二行不應該有第二m
  2. if應該從函數聲明一個單獨的行後.
+0

「。」究竟是什麼?我省略了它,它起作用了! – Katia 2011-04-05 07:10:28

+0

這是爲了向量之間的元素明智的操作。由於您在函數中使用單個元素,因此可以從'*'操作中省略它。 – 2011-04-05 07:12:48

+0

哦,我看^ _ ^謝謝 – Katia 2011-04-05 07:15:14

0

你需要另一個 「結束」:對第一個結束if語句。

+2

這是錯誤的,請參閱我對@ helloworld922的評論 – 2011-04-05 07:13:40

+0

啊,好的。謝謝。 – 2011-04-05 07:16:26

0

end -ed if-else語句,但沒有end函數。在最後添加額外的end

+3

不,函數不必以'end'結尾,除非需要設置特定的嵌套關係。 – 2011-04-05 07:07:29

+0

我刪除了'.',雖然沒有'結束'這個功能,但它仍然有效! – Katia 2011-04-05 07:11:16