楼主: 杜啦啦DY
857 1

[统计软件] matlab函数调用问题 [推广有奖]

  • 0关注
  • 1粉丝

博士生

8%

还不是VIP/贵宾

-

威望
0
论坛币
514 个
通用积分
2.6700
学术水平
7 点
热心指数
7 点
信用等级
7 点
经验
1344 点
帖子
72
精华
0
在线时间
354 小时
注册时间
2013-3-16
最后登录
2025-12-16

楼主
杜啦啦DY 学生认证  发表于 2018-4-25 17:42:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
新手小白问一个问题,为什么分别使用两种调用函数的方法进行极大似然估计,后者会报错呢?
(1)方法一:在同一个脚本里,建立匿名函数,进行极大似然估计(出自:http://www.ilovematlab.cn/thread-162705-2-1.html
% 定义样本观测值矩阵
>> x = [0.7917,0.8448,0.9802,0.8481,0.7627
        0.9013,0.9037,0.7399,0.7843,0.8424
        0.9842,0.7134,0.9959,0.6444,0.8362
        0.7651,0.9341,0.6515,0.7956,0.8733];
% 以匿名函数方式定义密度函数,返回函数句柄PdfFun
>> PdfFun = @(x,a,t) a*t*x.^(t-1).*(x>0 & x<1);
% 调用mle函数求参数最大似然估计值和置信区间
>> [phat,pci] = mle(x(:),'pdf',PdfFun,'start',[1,3],'lowerbound',[0,0],'upperbound',[2,6])

phat =

    2.0000    5.1502


pci =

    1.1235    2.8931
    2.8765    7.4073


(2)方法二:我尝试着另外建立m函数文件,再调用,然而总是报错。
主程序:
>> x = [0.7917,0.8448,0.9802,0.8481,0.7627
        0.9013,0.9037,0.7399,0.7843,0.8424
        0.9842,0.7134,0.9959,0.6444,0.8362

  >> [phat,pci] = mle(x,'pdf',PdfFun,'start',[1,3],'lowerbound',[0,0],'upperbound',[2,6])

m函数文件:
>>function [ll] = PdfFun(x,a,t)
     ll = a*t*x.^(t-1).*(x>0 & x<1);

    end

出现错误:
错误使用 PdfFun (line 4)
输入参数的数目不足。

谢谢~!
二维码

扫码加我 拉你入群

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

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

关键词:MATLAB matla atlab 函数调用 Mat matlab

沙发
杜啦啦DY 学生认证  发表于 2018-4-25 20:42:53
问题已经解决。
经网友提醒,mle命里里面有一句话:
Custom probability distribution function, specified as a function handle created using @.
似乎是在说,只能用@定义,不能用文件函数。

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-7 16:24