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