找回密码
 注册
Simdroid-非首页
查看: 58|回复: 1

请教如何用matlab求半高全宽,在线等

[复制链接]
发表于 2009-12-6 21:00:31 | 显示全部楼层 |阅读模式 来自 山东烟台
本人刚学matlab,想实现高斯分布函数的半高宽度以及此时对应的横坐标的值,做了以下程序,总出错,
返回值为ans =
   Empty matrix: 1-by-0

程序如下:
clc;
clear;
i=1;%i从1开始
for i=1:1000
    x=0:100;
    g=3*exp(-x.^2);
    [M(i,1),M(i,2)]=max(g);
    x(i,1)=M(i,1)./2;
    [m,n]=find(abs(g-x(i,1))<0.00001);
end

[m,n]
发表于 2009-12-6 22:01:11 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
问题较多呀,先挑主要问题说一下。

首先,i=1;%i从1开始,这句可以不要,反正后面循环中还要对 i 赋值。

其次,[M(i,1),M(i,2)]=max(g);,这句只要是M=max(g);就可以了。

最后,因为你的x是从0到100,而exp的100次幂太大了,所以到最x=35以后g 全为零。因而,在最后一句[m,n]=find(abs(g-x(i,1))<0.00001);,几乎找不到什么元素,因为0.00001相对应 g 已经很大的。

你按照上面说的再改改,有什么问题再问。
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 03:15 , Processed in 0.043178 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表