Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-05-31, 22:08   #1
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: 概率密度函数求解

不知下面程序是你所要的:
A=[15 3 17 18 8 30 23 30 28 29 25 26 27 5 8 4 27 13 15 20];
[a,b]=hist(A,3:6:27);
a1=a/length(A);
bar(b,a1);
axis([0,30,0,.45])
set(gca,'ytick',0:.05:.5,'yticklabel','0|10%|15%|20%|25%|30%|35%|40%|45%|50%')
希望有帮助!!!
TTT_IOU 当前离线   回复时引用此帖
旧 2009-06-01, 00:10   #2
kfcrex
初级会员
 
注册日期: 2009-05-12
年龄: 38
帖子: 8
声望力: 0
kfcrex 正向着好的方向发展
默认 回复: 概率密度函数求解

引用:
作者: TTT_IOU 查看帖子
不知下面程序是你所要的:
A=[15 3 17 18 8 30 23 30 28 29 25 26 27 5 8 4 27 13 15 20];
[a,b]=hist(A,3:6:27);
a1=a/length(A);
bar(b,a1);
axis([0,30,0,.45])
set(gca,'ytick',0:.05:.5,'yticklabel','0|10%|15%|20%|25%|30%|35%|40%|45%|50%')
希望有帮助!!!
可是这个程序运行出来的结果不对啊,我对Matlab不大清楚,出来的横坐标为什么是3,9,15……27呢?应该是6,12,18……30相对应的概率也不对呀~
不过可以麻烦您解释下hist这个函数吗?最好能举点不同于hlelp文档里的例子,help文档里的hist函数说明看不懂,当初看别人做的时候也是用这个函数,一直没看明白,E文太差了+_+b
kfcrex 当前离线   回复时引用此帖
旧 2009-06-01, 13:26   #3
zsy312
普通会员
 
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18
zsy312 正向着好的方向发展
默认 回复: 概率密度函数求解

%先编辑函数,a为已知数组,s为待求密度分布
function s=dens(a)
clc
N=10;
len=ceil(max(a)/N);
s=zeros(1,len);
for i=1:len
s(i)=length(find(a>N*(i-1)&a<=N*i));
end
s=s/length(a);
%%%%%%%%%%%%%%%%%%
主程序调用:
y=dens(a);
bar(100*y);%百分率
%区间我设成10了,可以改成别的。
zsy312 当前离线   回复时引用此帖
旧 2009-06-01, 13:42   #4
zsy312
普通会员
 
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18
zsy312 正向着好的方向发展
默认 回复: 概率密度函数求解

画图函数及自变量的区间自己改吧,plot可以做曲线,想光滑话的话,可以用interp1函数:
k=ceil(max(a)/10);%要和刚才的区间长度一致
y=interp1((1:k)*10-5,s*100,1:0.02:max(a),'spline');
plot(1:0.02:max(a),y)
axis([0,max(a),0,max(y)])

此帖于 2009-06-01 13:45 被 zsy312 编辑。
zsy312 当前离线   回复时引用此帖
旧 2009-06-01, 23:29   #5
kfcrex
初级会员
 
注册日期: 2009-05-12
年龄: 38
帖子: 8
声望力: 0
kfcrex 正向着好的方向发展
默认 回复: 概率密度函数求解

引用:
作者: zsy312 查看帖子
%先编辑函数,a为已知数组,s为待求密度分布
function s=dens(a)
clc
N=10;
len=ceil(max(a)/N);
s=zeros(1,len);
for i=1:len
s(i)=length(find(a>N*(i-1)&a<=N*i));
end
s=s/length(a);
%%%%%%%%%%%%%%%%%%
主程序调用:
y=dens(a);
bar(100*y);%百分率
%区间我设成10了,可以改成别的。
我运行了下,出现这个问题
??? Error: File: D:\Matlab7\work\wentishiyan.m Line: 12 Column: 1
Missing variable or function.
话说小弟其实是个初学者,您所写的对我来说就是天书一般的存在啊~
不过这个问题我已经得到答案了,就是用hist函数来写
A=[15 3 17 18 8 30 23 30 28 29 25 26 27 5 8 4 27 13 15 20];
x=3:6:27;
num=hist(A,x);
p=num/20;
plot(x,p)
再次感谢诸位的大力帮助~
kfcrex 当前离线   回复时引用此帖
旧 2009-06-02, 09:06   #6
zsy312
普通会员
 
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18
zsy312 正向着好的方向发展
默认 回复: 概率密度函数求解

改了函数的文件名就运行不了了,因为你后边要同时该命令才行。
用hist能做出来再好不过了,我也有收获。
zsy312 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:34


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.