matlab数据拟合nlinfit的问题,试了好多遍,还是不行,求助~ 5

f=@(k,x)k(1).*(x(:,1).^k(2))*.(x(:,2).^(1-k(2)));x=[100,100;107,105;114,110;122,117;1... f=@(k,x)k(1).*(x(:,1).^k(2))*.(x(:,2).^(1-k(2)));
x=[100,100;107,105;114,110;122,117;131,122;138,121;149,125;163,134;176,140;185,123;198,143;208,147;216,148;226,155;236,156;244,152;266,156;298,183;335,198;366,201;387,196;407,194;417,146;431,161];
Q=[100,101,112,122,124,122,143,152,151,126,155,159,153,177,184,169,189,225,227,223,218,231,179,240];
k0=[1,0.6];
k=nlinfit(x,Q,f,k0)
sse=sum((Q-f(b,x)).^2)
plot(x(:,1),x(:,2),Q,'k+',90:.1:600,90:.1:300,f(k,(90:.1:600,90:.1:300)),'k')
axis([80,700,80,400,80,400]),legend('测量值','理论值')
运行结果是:Error: Unexpected MATLAB operator.
修改了好多遍,还是不行,希望哪位懂的人能帮帮我,不胜感激~~~
展开
 我来答
lhmhz
高粉答主

2015-10-03 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17014

向TA提问 私信TA
展开全部
  1. 错误语句一:语句f=@(k,x)k(1).*(x(:,1).^k(2))*.(x(:,2).^(1-k(2)));中,点乘符号加位置错误。应为 f=@(k,x)k(1).*(x(:,1).^k(2)).*(x(:,2).^(1-k(2)));

  2. 错误语句二:x与Q不是同一类型的向量,因x是列向量而Q是行向量,应而可以将 Q行向量改为列向量就可以。

  3. 错误语句三:语句sse=sum((Q-f(b,x)).^2)中的f(b,x)应该为f(k,x)

  4. 错误语句四:plot()函数应该为plot3()函数

  5. 正确程序为

    clc,clear all,close all

    f=@(k,x)k(1).*(x(:,1).^k(2)).*(x(:,2).^(1-k(2)));

    x=[。。。]                                         

    Q=。。。] 

    k0=[1,0.6];

    k=nlinfit(x,Q,f,k0)

    sse=sum((Q-f(k,x)).^2)

    plot3(x(:,1),x(:,2),Q,'k+'),hold on

    X1=linspace(90,600,5000);X2=linspace(90,300,5000);X=[X1' X2']; 

    plot3(X1',X2',f(k,X),'k')

    axis([80,700,80,400,80,400]),legend('测量值','理论值')

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式