Re: [討論]prepareCurveData在matlab的不同

作者: s4300026 (s4300026)   2015-07-06 12:07:19
※ 引述《j225189 (jon)》之銘言:
: 小弟我的matlab版本是2010a
: 我有一位朋友用舊版的matlab可以使用CurveFit(X,Y)的prepareCurveData
: 我用新版的則無法啟動,不知是否可以請各位大大幫我解決這問題
: 以下是出現的error訊息:
: ??? Undefined function or method 'prepareCurveData' for input arguments of
: type 'double'.
: 可以看到都很正常的啟動 但跑到CurveFit這邊就無法跑動了
: 我有兩個 m.file 可以請各位大大幫我看看哪裡打錯嗎?
: 我搞這東西已經搞了3天了,我有上網查過,但感覺是版本問題
: 以下是我第一個 m file的指令:
: =================================================================
: X = [53.4 5];
: img = zeros(793,643);
: for i = 1:793
: for j = 271:373
: Y = [img1_smooth(i,j) img2_smooth(i,j)]; %影像大小
: [fitresult, gof] = curveFit(X,Y);
: img(i,j) = fitresult.b;
: end
: end
: =================================================================
: 以下是第二個 m.file的指令:
: =================================================================
: function [fitresult, gof] = curveFit(X,Y)
: [xData, yData] = prepareCurveData(X,Y);
: ft = fittype( 'a*log(x)+b', 'independent', 'x', 'dependent', 'y' );
: opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
: opts.Display = 'Off';
: opts.StartPoint = [0.0711291317856039 0.75887832197416];
: [fitresult, gof] = fit( xData, yData, ft, opts );
: =================================================================
: 謝謝各位幫我看看!!
個人簡化成:
function main
X = 1:10;
Y = 1:10;
[fitresult, gof] = curveFit(X,Y);
fitresult
function [fitresult, gof] = curveFit(X,Y)
[xData, yData] = prepareCurveData(X,Y);
ft = fittype( 'a*log(x)+b', 'independent', 'x', 'dependent', 'y' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
opts.StartPoint = [0.0711291317856039 0.75887832197416];
[fitresult, gof] = fit( xData, yData, ft, opts );
然後程式能跑,所以問題 "可能" 是出在
1. 你擁有相同名稱的函式在目錄檔案中,造成matlab呼叫時使用到您自定義的函式
2. 輸入格式與函式要求之格式不符,舉例來說:
對方要求您輸入一個 m*n的 "陣列",你卻給對方 "數值" 也會產生錯誤。
作者: j225189 (jon)   2015-07-06 14:27:00
謝謝你的解答 我試看看
作者: s4300026 (s4300026)   2015-07-06 15:32:00
http://tinyurl.com/nv3yeh83. 你的matlab中沒有該函式。
作者: j225189 (jon)   2015-07-07 08:11:00
好像是 那我要怎樣去修理?

Links booklink

Contact Us: admin [ a t ] ucptt.com