楼主: xiwu
2015 0

nlinfit 求教—MATLAB编程问题 [推广有奖]

  • 0关注
  • 1粉丝

已卖:47份资源

本科生

38%

还不是VIP/贵宾

-

威望
0
论坛币
57 个
通用积分
0.0001
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
1058 点
帖子
71
精华
0
在线时间
88 小时
注册时间
2010-1-14
最后登录
2015-10-16

楼主
xiwu 发表于 2010-6-4 16:04:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
%% ------1 先建立自定义函数的M文件------------------
function y=Gompertz(b,t);
y=b(1)*exp(-b(2)*exp(-b(3)*t));
%% ------2 再建立数据的结构体储存方式------------------
clc;
datas=smooth212; %smooth212已排升序,先按品种,再按个体,再按日龄;数据smooth212见附件中的电子表格数据
brd=0;%用来表示不同品种,1Landrace,2Yorkshire,3Duroc,4Unkown
id=0;%用来表示不同个体
n=0;%用来计算不同品种个体数
tday=0;%用来计算不同个体测定天数
breeds=struct('earmark',[]);%以下程序对data中的数据用结构数组进行分类存储,结构数组有3级,依次是品种breeds,耳牌earmark,和每天测定数据tdata
for i=1:length(datas)
    if datas(i,2)~=brd
        brd=datas(i,2);
        id=datas(i,1);
        n=1;
        tday=1;
    elseif datas(i,1)~=id
        id=datas(i,1);
        n=n+1;
        tday=1;
    else
        tday=tday+1;
    end
    breeds(brd).earmark(n).tdata(tday,:)=datas(i,:);  %创建结构体
end
%% ------3 求Gompertz模型曲线参数估计------------------
for i=1:length(breeds);
    t=0;
    for j=1:length(breeds(i).earmark);
        t=t+1;
        [beta r]=nlinfit(breeds(i).earmark(j).tdata(:,5),breeds(i).earmark(j).tdata(:,7),@Gompertz,[100 2 0.001]); %调用句柄函数,做非线性拟合Gompertz方程
        breeds(i).zjdata(t,1:3)=beta; % Gompertz 拟合参数向量,品种i中的个体t的估计参数
        breeds(i).zjdata(t,4)=1-sum(r.^2)/(length(breeds(i).earmark(j).tdata)-1)/var(breeds(i).earmark(j).tdata(:,7));  %拟合效果
     end
end  % 运行后出错,错在函数结果出现了无穷小Inf或逻辑非值NaN,需要修改MATLAB源程序
%%-----------4参数结果保存---------------------------
  logdata=[];
      for i=1:length(breeds)
         logdata=[logdata;breeds(i).zjdata];
      end
%%------------------------------------------------------------
我在运行第3段程序时,计算机就不出结果了,提示出现错误。但是当改为对logistic函数时,程序就没问题,可能是nlinfit(breeds(i).earmark(j).tdata(:,5),breeds(i).earmark(j).tdata(:,7),@Gompertz,[100 2 0.001])还要修改。但我吧知道怎么修改了,请各位路过的高手进来帮忙看看啊。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB编程 nlinfit MATLAB atlab matla MATLAB 求教 nlinfit

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 21:06