精华内容
下载资源
问答
  • matlab 二维高斯分布

    千次阅读 2013-05-09 15:47:07
    这里给出话二维高斯分布matlab作图代码: >> mu = [-1, 2]; >> sigma = [1 0;0 1]; >> [X, Y] = meshgrid([-20:0.5:20]); >> p = mvnpdf([X(:),Y(:)],mu,sigma); >> p = reshape(p,size(X)); >> figure(2) >> ...

    这里给出话二维高斯分布的matlab作图代码:

    >> mu = [-1, 2];
    >> sigma = [1 0;0 1];
    >> [X, Y] = meshgrid([-20:0.5:20]);
    >> p = mvnpdf([X(:),Y(:)],mu,sigma);
    >> p = reshape(p,size(X));
    >> figure(2)
    >> surf(X,Y,p)
    >> shading interp
    >> colorbar


     

    展开全文
  • 将图像中的星点进行二维高斯拟合,并输出结果和对比图像。
  • 然后程序尝试使用 MatLab 函数“lsqcurvefit”拟合数据,以找到二维高斯的位置、方向和宽度。 不输入参数执行“mainD2GaussFitRot.m”。 二维高斯函数由函数“D2GaussFunctionRot.m”和“D2GaussFunction.m”定义
  • matlab二维正态函数图像 画坐标网格 [x,y]=meshgrid(-5:0.1:5,-5:0.1:5) 正态分布密度函数 f=1/(2*pi*sigma1*sigma2*sqrt(1-p*p))*exp(-1/(2*(1-p*p))*(((x-u1).^2)./(sigma1*sigma1)-2*p*((x-u1)*(y-u2))./...
  • MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图

    万次阅读 多人点赞 2019-01-15 22:55:47
    本篇博文记录使用MATLAB绘制二维高斯函数的三维图。 用到的MATLAB函数——mesh()(绘制三维线框图)和surf()(绘制三维表面图)。 MATLAB命令窗口输入>> doc 函数名,可以查看相关函数的帮助文档。...

    本篇博文记录使用MATLAB绘制二维高斯函数的三维图。

    用到的MATLAB函数——mesh()绘制三维线框图)和surf()绘制三维表面图)。

    MATLAB命令窗口输入>> doc 函数名,可以查看相关函数的帮助文档。


    一维高斯函数:

            f \left ( x \right ) = \frac{1}{\sqrt{2\pi }\sigma }e^{-\frac{\left ( x-\mu \right )^{2}}{2\sigma ^{2}}}(μ为均值,σ为标准差)

    二维高斯函数:

            g\left ( x,y \right ) = \frac{1}{2\pi \sigma^{2} }e^{-\frac{\left ( x^{2}+y^{2} \right )}{2\sigma ^{2}}}(这里,均值均为零,标准差均为σ)


    下面给出代码(两种实现结果),绘制一个均值为25,标准差为5的二维高斯函数的三维图:

    代码实现一:

    % 先限定三维图中的x,y轴坐标范围
    X = 0 : 1 : 50;
    Y = 0 : 1 : 50;
    
    % 标准差
    sigma = 5;
    
    
    Z = zeros( 51, 51 );
    for row = 1 : 1 : 51
        for col = 1 : 1 : 51
            Z( row, col ) = ( X(row) - 25 ).^2 + ( Y(col) - 25 ).^2; % 均值(25, 25)
        end
    end
    Z = -Z / ( 2 * sigma^2 );
    
    Z = exp(Z) / ( 2 * pi * sigma^2 );
    
    % 显示高斯函数的三维曲面
    figure, surf(X, Y, Z);

    结果图:

    代码实现二:(更推荐

    % 先限定三维图中的 x,y 轴坐标范围
    X = 0 : 1 : 50;
    Y = 0 : 1 : 50;
    
    % 标准差
    sigma = 5;
    
    [ XX, YY ] = meshgrid( X, Y );
    Z = ( XX - 25 ).^2 + ( YY - 25 ).^2;
    
    Z = -Z / ( 2 * sigma^2 );
    Z = exp(Z) / ( 2 * pi * sigma^2 );
    
    % 显示高斯函数的三维图
    figure, mesh(X, Y, Z); % 线框图

    结果图:

    以上两种代码实现中,差别在于Z的计算。代码实现一中,使用了双层for循环,时间会比代码二长。而代码实现二中,利用向量化运算取代for循环(即向量化循环),代码的效率会更高,更值得推荐。(这也是MATLAB编程上的一个技巧)。

    并且,使用meshgrid,不会受到坐标(索引)为零的影响。例如:

    % 先限定三维图中的 x,y 轴坐标范围
    X = -25 : 1 : 25;
    Y = -25 : 1 : 25;
    
    % 标准差
    sigma = 5;
    
    [ XX, YY ] = meshgrid( X, Y );
    Z = ( XX ).^2 + ( YY ).^2; % 均值为(0,0)
    
    Z = -Z / ( 2 * sigma^2 );
    Z = exp(Z) / ( 2 * pi * sigma^2 );
    
    % 显示高斯函数的三维图
    figure, mesh(X, Y, Z); % 线框图

    结果图:

    以上三维图中,MATLAB默认绘制彩色图。

    colormap( [0 0 0] ); % 或者 colormap( gray ) —— 可以将以上彩色三维图转换为灰色。

    另外,还可控制三维图中的网格显示和坐标轴显示。

    grid off; % 关闭网格 (grid on —— 开启网格)
    
    axis off; % 关闭坐标轴显示 (axis on —— 开启坐标轴显示)

     

    以上内容可用于二维滤波器的三维可视化。相关内容在书籍《数字图像处理(MATLAB版)》“4.5 在频域中直接生成滤波器”章节也有讲述。

     


    下面的这段文字是对上述向量化循环的扩展,文字引自《数字图像处理(MATLAB版)》/(美)冈萨雷斯等著;阮秋琦等译.北京:电子工业出版社,2005,9.

    MATLAB使用函数meshgrid来实现二维函数的评估,该函数的语法为:

    [ C, R ] = meshgrid( c, r );

    该函数将由行向量c和r指定的域变换为数组C和R,这两个数组能用来评估有两个变量的函数和三维表面图(注意,在meshgrid的输入输出中,列总是首先列出)。

    输出数组C的行是向量c的副本,输出数组R的列是向量r的副本。

    例如,假设我们想形成一个二维函数,该函数的元素是坐标变量x和y的值的平方和,其中,x=0,1,2  y=0,1。向量r由坐标的行分量构成:r=[0,1,2];类似地,向量c由坐标的列分量构成:c=[0,1],这里r和c均为行向量。

    将这两个向量代入meshgrid,可得如下数组:

    >>[ C, R ] = meshgrid( c, r )

    C = 

           0     1

           0     1

           0     1

    R =

           0      0

           1      1

           2      2

    >>h = R .^2 +C .^2

    h =

           0      1

           1      2

           4      5

    h的维度为length(r) * length(c)

     

    参考:

    [1] Matlab绘制三维曲面(以二维高斯函数为例)(https://www.cnblogs.com/pzxbc/archive/2012/02/14/2351708.html

     


    在进行以上内容的学习时,也检索到下面的写得不错的博客:

    (1)高斯函数以及在图像处理中的应用总结(https://www.cnblogs.com/herenzhiming/articles/5276106.html

    (2)高斯函数的详细分析(https://blog.csdn.net/jorg_zhao/article/details/52687448

     

     

    展开全文
  • 函数 ret = drawBayesGauss2D(mu,c,prProb,ax) % 绘制二维高斯分布的贝叶斯分类结果。 % mu:2×N,N 个类别的平均向量。 % c:2×2×N,cov 矩阵。 % prProb:1×N,先验概率。 % ax: [xmin xmax ymin ymax],绘制...
  • matlab:画二维高斯分布密度函数图

    万次阅读 2015-04-22 22:32:16
    首先,把二维正态分布密度函数的公式贴这里 这只图好大啊~~ 但是上面的那个是多维正态分布的密度函数的通式,那个n阶是对称正定方阵叫做协方差矩阵,其中的x,pi,u都是向量形式。虽然这个式子很酷,但是用...

    首先,把二维正态分布密度函数的公式贴这里

    这只图好大啊~~

    但是上面的那个是多维正态分布的密度函数的通式,那个n阶是对称正定方阵叫做协方差矩阵,其中的x,pi,u都是向量形式。虽然这个式子很酷,但是用在matlab里画图不太方面,下面换一个

    这个公式与上面的等价,只不过把向量和矩阵展开,计算出来。我们可以用这个式子画图。

    因为二维函数的形式是:z=f(x,y)

    所以必须先选择一些点,然后计算出f(x,y)。这些点分布在一个平面上,而z则在三维空间。

    如何选择平面上的点阵?

    [x,y]=meshgrid(a,b)

    meshgrid就是这样一个生成点阵的函数,这个meshgrid理解起来有点绕,不过举个例子就马上能力明白了。下面是matlab里面的一段截图:

     

    我们可以看到meshgrid生成了两个同样大小的矩阵,第一个矩阵是通过把第一个参数[1:3]顺着行的方向复制了4次,4是第二个参数的长度,同样第二个矩阵是第二个参数顺着列的方向复制了三次,3是第一个参数向量的长度。而这个点阵就是:

    (1,2)   (2,2)   (3,2)

    (1,3)   (2,3)   (3,3)

    ...

    看出什么意思了吧?就这个意思。

    至于这两个参数到底怎么选,这样根据你的正态分布的均值,尽量使点阵的中心与分布的均值靠近。

    好了,有了平面上的点,就来算这些点对应的函数值。往函数里套就行,下面是代码:

    ?
    function Z = drawGaussian(u,v,x,y)
    %  u,vector,expactation;v,covariance matrix
    % x = 150 : 0.5 : 190 ;  
    % y = 35 : 110 ;      
    [X,Y] = meshgrid(x,y);
    DX = v( 1 , 1 );     % X的方差
    dx = sqrt(DX);
    DY = v( 2 , 2 );     % Y的方差
    dy = sqrt(DY);
    COV = v( 1 , 2 );     % X Y的协方差
    r = COV / (dx * dy);
    part1 = 1 / ( 2 * pi * dx * dy * sqrt( 1 - r^ 2 ));
    p1 = - 1 / ( 2 * ( 1 - r^ 2 ));
    px = (X - u( 1 )).^ 2. / DX;
    py = (Y - u( 2 )).^ 2. / DY;
    pxy = 2 * r. * (X - u( 1 )). * (Y - u( 2 )). / (dx * dy);
    Z = part1 * exp(p1 * (px - pxy + py));
    mesh(x,y,Z);

      最后一句mesh(x,y,Z) 是画图函数,画出的图行大概是下面这个样子:

    展开全文
  • 二维高斯滤波器图像滤波MTATLAB程序设计 用MATLAB设计一个33模板标准差为的二维高斯低通滤波器(Gaussion low pass filter分别对灰度图像真彩色图像伪彩色图像进行滤波处理 %二维高斯低通滤波器 %文件为glpf.m ...
  • 维高斯分布与多维高斯分布 一维高斯分布 高斯分布(Gaussian distribution),又称正态分布(Normal distribution)。若随机变量X服从一个数学期望为μ、方差为σ^2 的正态分布,记为N(μ,σ^2)。其概率密度函数...

    一维高斯分布与多维高斯分布

    一维高斯分布

    高斯分布(Gaussian distribution),又称正态分布(Normal distribution)。若随机变量X服从一个数学期望为μ、方差为σ^2 的正态分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。

    正态分布使用下列参数:

    参数说明范围
    mu (μ)均值−∞<μ<∞
    sigma (σ)标准差σ≥0

    高斯分布的概率密度函数(probability density function)为:
    f ( x ) = 1 2 π σ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) f(x)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right) f(x)=2π σ1exp(2σ2(xμ)2)

    高斯分布曲线的特征:

    • 关于μ对称;高斯分布的概率密度函数的积分为1;
    • 通过公式可以看出,σ越大,x位置的概率密度就越小,曲线越平缓;而σ越小,x的概率密度就越大,曲线越瘦高的,分布比较集中。

    一维高斯分布
    一维高斯分布 matlab 代码

    // An highlighted block
    %一维高斯分布
    x=-6:0.1:6;
    y1=normpdf(x,0,0.5);
    y2=normpdf(x,0,1);
    y3=normpdf(x,0,1.5)
    y4=normpdf(x,-2,1)
    plot(x,y1,'r-',x,y2,'g-',x,y3,'b-',x,y4,'y-');  % '-'表示实线
    title('一维高斯分布')
    legend('mu=0,sigma=0.5','mu=0,sigma=1'...  %换行...
        ,'mu=0,sigma=1.5','mu=0,sigma=1')
    
    

    二维高斯分布

    p ( x ; μ , Σ ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ 1 / 2 exp ⁡ ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) p(x ; \mu, \Sigma)=\frac{1}{(2 \pi)^{n / 2}|\Sigma|^{1 / 2}} \exp \left(-\frac{1}{2}(x-\mu)^{T} \Sigma^{-1}(x-\mu)\right) p(x;μ,Σ)=(2π)n/2Σ1/21exp(21(xμ)TΣ1(xμ))
    Σ = E [ ( X − μ ) ( X − μ ) T ] \Sigma=E\left[(X-\mu)(X-\mu)^{T}\right] Σ=E[(Xμ)(Xμ)T]
    在这里插入图片描述
    二维高斯分布 matlab 代码

    // An highlighted block
    %二维高斯函数
    figure;
    mu=[0 0];
    sigma=[0.3 0;0 0.35];
    [x y]=meshgrid(linspace(-8,8,80)',linspace(-8,8,80)');
    X=[x(:) y(:)];
    z=mvnpdf(X,mu,sigma);
    surf(x,y,reshape(z,80,80));
    hold on;
    %第一个
    mu=[4 0];
    sigma=[1.2 0;0 1.85];
    [x y]=meshgrid(linspace(-8,8,80)',linspace(-8,8,80)');
    X=[x(:) y(:)];
    z=mvnpdf(X,mu,sigma);
    surf(x,y,reshape(z,80,80));
    
    

    参考:维基百科.

    展开全文
  • 给定协方差矩阵和窗口大小,快速生成二维高斯核。 宽度 = 内核窗口的半宽(整数) height = 内核窗口的半高(整数) s = 2x2 协方差矩阵是的,这支持各向异性和旋转高斯分布(长轴不必是 x 轴或 y 轴)。 这段代码被...
  • 数值分析Matlab二维正态(高斯)分布以及协方差矩阵 主要是使用了matlab的mvnrnd产生随机的正态(高斯分布二维矩阵,然后绘制出来。代码运行结果生成的正态分布实验数据如图: MATLAB代码: mu1 ...
  • matlab生成二维服从高斯分布的数据

    万次阅读 2015-12-30 21:31:31
    由于实验需要,需要生成两类模式的数据,同时这两类数据要服从正态分布(高斯分布)。 使用matlab来实现:mu = [2 3]; SIGMA = [1 0; 0 2]; r = mvnrnd(mu,SIGMA,100); plot(r(:,1),r(:,2),'r+'); hold on; mu = [7...
  • 参考:... 修改如下: Create a gmdistribution object and generate random variates. Define the distribution parameters (means and covariances) of a ...
  • 基础科研
  • 创建自定义二维高斯,可用于过滤、加权等。所有参数均可自定义,包括标准偏差(sigmaX、sigmaY)、旋转(theta)、结果大小、中心等。
  • 函数输入: - filter_size: 过滤器的大小- 西格玛:标准偏差函数输出: - 二维高斯滤波器矩阵在 3D 中绘制滤波器矩阵的示例: g1=Gaussian_filter(50,2); g2=Gaussian_filter(50,7); g3=Gaussian_filter(50,11); 图1...
  • matlab 二维 正态 概率密度 二维概率分布
  • 二维高斯积分matlab源代码

    热门讨论 2011-08-31 00:14:08
    经检验准确无误,希望对大家会有用,支持多个区间同时积分
  • 终端探测器探测到的光斑灰度分布函数可近似看做高斯分布,因此可以通过二维高斯函数进行拟合,模型表示为: 效果图: 为了方便计算,做一步变换,两边取对数,得到: 展开并进一步变形为: 求解...
  • Gaussianfit2D_拟合星点_matlab二维高斯拟合_高斯拟合_二维高斯拟合
  • 生物化学专业可用。可视化温度场随时间变化图。
  • 这是一个创建归一化二维正态分布(也称为高斯钟)的小程序。 用户可以选择确定分布的中心、标准差、输出矩阵的大小以及创建分布的区域。 我还没有包括为 x 轴和 y 轴设置不同 sigma 的选项,如果需要,可以随意添加...
  • MATLAB绘制二维高斯曲面

    万次阅读 2017-08-06 10:19:21
    二维高斯函数表达式为: 程序如下: clc; sig=1.5; w_x=(-5:0.1:5); w_y=(-5:0.1:5); [X,Y]=meshgrid(w_x,w_y); W=exp(-(X.^2+Y.^2)./sig.^2); mesh(w_x,w_y,W); %绘制三维曲面的函数
  • Gaussianfit2D_拟合星点_matlab二维高斯拟合_高斯拟合_二维高斯拟合_源码.zip
  • Matlab绘制三维曲面(以二维高斯函数为例)  寒假学习了一下Python下的 NumPy和py matlab ,感觉不是很容易上手。来学校之后,决定继续看完数字图像处理一书。还是想按照上学期的模式,边看边实现书中的算法。上...
  • 二维温度场matlab分析

    2018-10-23 14:06:11
    基于matlab二维钢板冷却的温度场分析,运用差分方程
  • 图像处理中用于噪声过滤的高斯滤波器。 图像处理中使用的滤波器的二阶导数 高斯的 LOG 拉普拉斯算子 这是 gaussina 的二阶导数,用于边缘检测和平滑图像,从而减少噪声的影响。 使用符号数学工具箱计算的导数。 现在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,060
精华内容 3,224
关键字:

matlab二维高斯分布

matlab 订阅