2015-11-01 106 views
0

我有一個.m文件的功能:函數作爲參數

function [func diff1 diff2]=fun(x) 

func=(3*x^3)+6; 
diff1=(3*(x+0.00000001)^3-3*((x)^3))/0.00000001; 
diff2=(3*((x+0.00000001)^3)-2*3*(x^3)+3*(x-.00000001)^3)/(.00000001^2); 
end 

在第二個功能我希望能夠在函數作爲參數傳遞。我不斷收到

「試圖訪問fun(3);索引超出範圍因爲numel(fun)= 1。

有沒有人有任何想法?

function [x,N,fval]=halley(fun,guess,tol); 
fval=fun(guess); 
end 
+0

是','的'的一個halley'錯字第一線?你如何援引哈利? –

+0

對不起,這是一個錯字。我在Matlab的命令行中調用halley,即halley(fun,3,0.1) – user3223190

+0

似乎'fun'並沒有指向你的函數,而是在某個數組上,'which fun'返回了什麼? – Daniel

回答

2

你需要傳遞一個函數調用句柄時halley

halley(@fun, 3, 0.1)