如何用Matlab编程对一组数据进行对数正态分布拟合

作者&投稿:支功 (若有异议请与网页底部的电邮联系)
matlab 如何用一列Excel数据做对数正态分布拟合曲线~

close all;clear all;data = xlsread('数据.xls','sheet1'); %读入数据[y x]=hist(data,100); %统计频次分布figure('Color','w');h=bar(x,y,1); %画直方图set(h,'EdgeColor',[0.5 0.5 0.5],'FaceColor',[0.5 0.5 0.5]);hold on;%对数正态分布密度函数) p(1)./x.*exp(-((log(x)-p(2))/p(3)).^2/2);[maxy ind]=max(y); %做非线性数据拟合p=nlinfit(x,y,fun,[maxy*x(ind),log(x(ind)),1]);%画拟合曲线x1 = min(x):0.01:max(x);yfit=fun(p,x1); plot(x1,yfit,'k','linewidth',3);[ymax i] = max(yfit); %找到极值点xm = x1(i);plot([xm xm],[0 ymax+10],'k','linewidth',3); %画竖线xlim([min(x) max(x)]);xlabel('BC浓度(ng/m^3)');ylabel('频数');

close all;clear all;data = xlsread('工作簿数据.xlsx','sheet2','g2:g106556'); %读入数据%测试数据 data = lognrnd(8,.7,10000,1);[y x]=hist(data,200); %统计频次分布h=bar(x,y,1); %画直方图hold on;%对数正态分布密度函数fun=@(p,x) p(1)./x.*exp(-((log(x)-p(2))/p(3)).^2/2);%A=p(1),mu=p(2),sigma=p(3)[maxy ind]=max(y); %做非线性数据拟合p=nlinfit(x,y,fun,[maxy*x(ind),log(x(ind)),1]);%画拟合曲线x1 = min(x):0.01:max(x);yfit=fun(p,x1); plot(x1,yfit,'r','linewidth',1);%极大似然处 x=exp(mu-sigma^2);xmax=exp(p(2)-p(3)^2);ymax=fun(p,xmax);plot([xmax xmax],[0 ymax],'g','linewidth',2);%期望值处 x=exp(mu+sigma^2/2)xmean=exp(p(2)+p(3)^2/2);ymean=fun(p,xmean);plot([xmean xmean],[0 ymean],'c','linewidth',2);xlim([min(x) max(x)]);xlabel('BC浓度(ng/m^3)');ylabel('频数');legend('统计数据',['对数正态分布:\mu=' num2str(p(2)) ',\sigma=' num2str(p(3))],... ['极大概然分布位置:x=' num2str(xmax)],['期望值位置:x=' num2str(xmean)]);text(xmean+10000,ymean+10,'$ y=\frac{A}{x}e^{-\frac{(lnx-\mu)^2}{2\sigma^2}} $',... 'interpreter','latex','FontSize',18);

1,把数据直接导入matlab,x=[];y=[](大量数据建议使用txtread),然后点击屏幕左下方start进入toolboxes然后点Curve Fiting Tool ,导入数据 选择Gaussian次数为1,即可得到拟合效果 参数也会出来

参考答案 真正的友谊,有如健康失去时,始知其价值。--英谚


求解使用matlab语言编写猜数字游戏的程序
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows...

什么情况下用matlab?什么情况下用origin?区别在哪里
模版”这一核心概念的。一般来说,科学研究中用到的图表种类有限,因此origin准备了丰富的、易于修改的图表模版供用户直接套用。经过一些简单的学习,即可掌握:数据准备、选择模版、修改图表元素等过程,大部分用户到这一步就够用了。确实需要的话,也可以更深入地学习一些高级的用法,例如调用Matlab……...

如何用MATLAB 编写interpl插值函数
函数体 如下所示,是编写的一个求1到n之和的求和函数 eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头:function [s] = eg_sum( n )calculate the sum of 1..n s = 0;for i = 1:n s = s + i;end 回到控制台Command Window(主界面),注意要使用之前...

MATLAB是什么?干什么用的?需要什么基础?
Matlab是一个具有强大计算能力和仿真能力的数学软件。1.简单来说,Matlab是一个具有强大计算能力和仿真能力的数学软件,更多的侧重于科学计算不同于别的。2.Matlab的全称是matrix&laboratory,即矩阵实验室,因此如果想要比较好的使用Matlab,矩阵的知识是很重要的,尤其在向量化编程方面。此外,就是其他的...

matlab中如何编程序进去
matlab 程序的文件代码是以.m文件的形式呈现的。将matlab代码编写进.m文件内然后运行即可。例子:建立一个 helloworld.m 文件内包括内容如下:fprintf('Hello World!');使用快捷键F5直接运行,然后可以在控制台下看到打印的:Hello World!

matlab编程是用什么语言的啊?
新版本的MATLAB可以利用MATLAB编译器和C\/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称...

请问,用MATLAB怎么编写程序求出t值,关于积分解方程,谢谢大家。_百度知 ...
参考代码:f=@(t)quadl(@(x)3.7415e8*x.^-5.*(2.7183.^(1.43879e4.\/(x*t))-1).^(-1),7.5,14)*0.975\/pi-216.7;ezplot(f,[eps 500])t0=fzero(f,10)hold onplot(t0,f(t0),'ro')plot(xlim,[0 0],'g--')hold off求出的t值为(图片不太清晰,里面部分数据可能不...

Matlab是用什么语言编写的?
为了增加编辑、调试、导航、评估MATLAB代码的功能,需要构建集成式开发环境(IntegratedDevelopmentEnvironment,IDE),需要用到Java语言。为了进行协同加速计算,采用NVIDIA公司的CUDA,因此需要用到CUDA代码。当MATLAB功能已经足够完备,自身也成为了一门编程语言,因此MATLAB软件的部分代码也用MATLAB语言进行编程。

用MATLAB软件 如何编写 y=xsin(x)的峰值 的程序???
这样更好些,无需知道dy【如果很复杂,就显得很有用了】:function hh global dy y='x*sin(x)';ezplot(y),grid dy=diff(y)x0=[-5 -2 0 2 5];fsolve(@myfun,x0)function f=myfun(x)global dy f=subs(dy);结果:dy = sin(x)+x*cos(x)Optimization terminated: first-order ...

如何用Matlab求解级数的和??
如果新的项的值小于阈值,则停止迭代 if term < threshold break;end end 输出级数和 disp(sum)注意:这只是一个基本的示例,实际的级数可能需要更复杂的函数和更多的迭代次数。此外,Matlab还提供了内置函数sum,可以直接对数组或向量中的元素进行求和,但在处理无穷级数时,我们需要自己编写循环结构。

治多县18446106420: 如何把一组数据写进一个MATLAB矩阵? -
承钓香连: n = 10; B = zeros(1,n); for k = 1:n r = k; % 运算后数据 B(k) = r; % 存入矩阵内

治多县18446106420: matlab中如何对一组数据依此进行提取,并进行计算? -
承钓香连: 可以使用for循环,或者while循环. 查看使用方法,可以使用下面的命令: doc for doc while

治多县18446106420: 如何用matlab编程实现一组数据的曲线拟合 -
承钓香连: x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];p=fittype('a*x.^0.5+b*lnx+c','independent','x')f=fit(x,y,p)plot(f,x,y);上面是代码!下面是结果:a=2.818b=0.8552c=-0.6627

治多县18446106420: matlab 如何导入一组数据.并对其进行拟合? -
承钓香连: 刚好我现在写着的程序有用拟合. PSVBER1= PSVBER1= M= (这两个自己赋值)t=0:1:M; %拟合PSVBER1=polyfit(t,SVBER1,1);f1=polyval(PSVBER1,t);

治多县18446106420: 怎么用matlab对一组数据,比如a=[1,2,3,4,5,6,7,9]先求和再求平均值? 要用公式和函数,急用,谢谢!!! -
承钓香连: 公式: a=[1,2,3,4,5,6,7,9]; suma=0; n=length(a); for i=1:nsuma=suma+a(i); end suma avera=suma/n 如果要将上面打包成函数,在行首加一下,形成: function [suma,avera]=myfun(a) suma=0; n=length(a); for i=1:nsuma=suma+a(i); end suma avera=suma/n %%%%%% 主函数调用: a=[1,2,3,4,5,6,7,9]; [sa,aa]=myfun(a)如果用函数实现的话: sum(a) %求和 mean(a) %求平均数

治多县18446106420: 怎么将一组excel数据导入,通过matlab作图 -
承钓香连: 把这个EXCEL文件放到matlab目录下的work里,假设名为1.xls,然后在matlab里输入A=xlsread('1.xls'),即可导入数据,这时A是一个矩阵,若要其中的两列画图,可以这样:假设A为20行4列,我们要第3列所有的数据做为X轴坐标,第5列做Y轴坐标,命令如下:x=A(:,3);y=A(:,5);plot(x,y)

治多县18446106420: 怎么用MATLAB处理一组XLS数据 -
承钓香连: 用 xlsread()函数读入数字,再进行操作

治多县18446106420: matlab 怎么对数据分组? -
承钓香连: 1、产生group = [1 2 3](保证每组中至少有一个元素) 2、将group的长度扩展至6,从group(4:6)中的每一个元素都是1-3的随机数 3、用randperm打乱group中元素的顺序. 4、然后将data序列中在group数组中对应位置为1的元素做为第一组,对...

治多县18446106420: MATLAB对一组离散的数据进行离散傅立叶变换,得到频谱图,再进行低通滤波,然后再反变换得到离散数据对一组离散的数据进行离散傅立叶变换,得... -
承钓香连:[答案] x=load('baidu.txt');xjw=fft(x,300);for i=1:300 if abs(xjw(i))>40 %截止频率为40HZ xjw(i)=0; endendxx=ifft(xjw);subplot(2,1,1);plot(x);subplot(2,1,2);plot(xx);

治多县18446106420: MATLAB从文本文档中读入一组数据,画分布图 -
承钓香连: File->Import,导入1.txt文件,则在workspace中生成一个x1文件,右击它一下,选择bar(x1),可以画出图.至于曲线一般用plot函数,坐标用axis改.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网