当前位置: 首页 > 程序语言 >急求:用matlab画三维相图时,不知道哪个地方出现错误

急求:用matlab画三维相图时,不知道哪个地方出现错误

作者 mimi66922
来源: 小木虫 450 9 举报帖子
+关注

急求急求。。。。。。我用matlab画三维相图时,总是显示错误,急求大神们帮我看看是什么原因,我的程序如下:

CODE:
clear;clc;
load 1.mat;--------------------------------------------------------------(1.mat是我调用的数据)
X = [x, y];
beta0 = [1, 1, 2, 1, 0, 1];
[beta, r, J, COVB, mse] = nlinfit(X, z, @myfun, beta0);

% 画图
plot3(x, y, z, '*');
hold on;
xx = 1:1:50;
yy = 1:40;
[xx1, yy1] = meshgrid(xx', yy);
xx2 = xx1(;
yy2 = yy1(;
zz2 = myfun(beta, [xx2, yy2]);
zz1 = reshape(zz2, length(yy), length(xx));
mesh(xx1, yy1, zz1);

F = myfun2(xx2, yy2);
zz3 = reshape(F, length(yy), length(xx));
C = ones(length(yy), length(xx));
C = C / 2;
mesh(xx1, yy1, zz3, C);

错误如下:

Undefined function or variable 'nlinfit'.

Error in main (line 5)
[beta, r, J, COVB, mse] = nlinfit(X, z, @myfun, beta0);

[ Last edited by jjdg on 2017-5-3 at 14:48 ] 返回小木虫查看更多

今日热帖
  • 精华评论
  • somomo91

    错误是说,MATLAB 无法调用 nlinfit 这个函数,这有点不太可能,因为这个函数是 2006 年 左右引入的,基本排除错误
    确认一下,楼主用的是哪个版本的MATALB ?
    另外,还有可能是 程序调用 nlinfit 的时候,myfun 这个函数没能识别,也会出现类似错误,
    因为这里程序开始的时候有 clear ,所以没法确定你的 1.mat 里面是不是有 myfun 和 myfun2 这两个函数,

  • liuzi919

    首先,检查下是否存在这个函数 nlinfit,若你所用的版本存在这个函数,这说明用发错了;如果你所用的版本不存在,确定你所用的matlab版本是否过高,又或者过低?

  • FMStation

    CODE:
    modelfun = @(b,x)(b(1)+b(2)*exp(-b(3)*x));

    rng('default') % for reproducibility
    b = [1;3;2];
    x = exprnd(2,100,1);
    y = modelfun(b,x) + normrnd(0,0.1,100,1);
    Set robust fitting options.

    opts = statset('nlinfit');
    opts.RobustWgtFun = 'bisquare';
    Fit the nonlinear model using the robust fitting options.

    beta0 = [2;2;2];
    beta = nlinfit(x,y,modelfun,beta0,opts)


  • xxc549

    好远?

  • 阿东嘻嘻嘻嘻

    我还刚接触这个软件,对它一窍不通

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓