我是靠谱客的博主 欣喜柚子,最近开发中收集的这篇文章主要介绍matlab常用函数备忘录(持续更新)前言:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言:

本博文用于记录matlab中一些常见的函数,以便备忘,会持续更新。

1、mat2gray()

用来归一化二维矩阵的,这在图像处理中会经常用得到,详情请查看其MATLAB源代码。

在MATLAB中输入一个3*3大小的矩阵,经mat2gray()之后得到一个归一化后的矩阵。语句如下:

>> a=[1,2,3;2,3,4;3,4,5]

a =

     1     2     3
     2     3     4
     3     4     5

>> b=mat2gray(a)

b =

         0    0.2500    0.5000
    0.2500    0.5000    0.7500
    0.5000    0.7500    1.0000
从而可知,mat2gray()的原理是,找出矩阵a中的最大值Vmax与最小值Vmin,则元素之间最长距离为D=Vmax-Vmin。

b(i,j)=(a(i,j)-Vmin)/D

上述代码中,Vmin=a(1,1)=1,Vmax=a(3,3)=5,D=4。故:归一化之后元素为矩阵b中的值。

2、fspecial()

用来生成滤波算子的模板,在图像滤波中也经常用到。详情请查看其MATLAB源代码,下面以高斯为例。

用MATLAB生成一个5*5,δ=1.6的高斯滤波模板,语句如下:

>> fspecial('gaussian',[5 5],1.6)

ans =

    0.0165    0.0297    0.0361    0.0297    0.0165
    0.0297    0.0534    0.0649    0.0534    0.0297
    0.0361    0.0649    0.0789    0.0649    0.0361
    0.0297    0.0534    0.0649    0.0534    0.0297
    0.0165    0.0297    0.0361    0.0297    0.0165
可以看出,此函数产生的高斯核是经过归一化的。

3、mvnrnd()

用来生成多元正态分布的随机数据。

引用方法有:

R = mvnrnd(MU,SIGMA)
r = mvnrnd(MU,SIGMA,cases)
其中MU是均值向量,SIGMA为协方差矩阵(若是一元情况,则MU为正态分布中的μ,SIGMA为正态分布中的σ^2),返回值R为随机产生的一个向量(该向量服从给定参数的多元正态分布)。若还带有参数cases,cases表示生成向量的个数,因此r是一个矩阵。

下面举例说明:

>> r=mvnrnd([2 3],[1 0;0 1],100);
plot(r(:,1),r(:,2),'r.')
axis([-5 10 -5 10]);
此代码中,给定参数为:均值向量MU=[2 3],协方差矩阵SIGMA=[1 0;0 1](很显然此处协方差矩阵是一个二阶的单位矩阵),cases为100(即100个向量),生成的矩阵r应为100x2的矩阵。

输出结果:

如果改协方差矩阵为SIGMA=[1 0.8;0.8 1],则说明两个维度之间存在相关性,这种相关是正相关;若SIGMA=[1 -0.8;-0.8 1]则是负相关的。

>>r1=mvnrnd([2 3],[1 0.8;0.8 1],100);
r2=mvnrnd([2 3],[1 -0.8;-0.8 1],100);
figure;hold on;
plot(r1(:,1),r1(:,2),'r.');%红色点为正相关的一组数据
plot(r2(:,1),r2(:,2),'b.');%蓝<span style="font-family: Arial, Helvetica, sans-serif;">色点为负相关的一组数据</span>
axis([-5 10 -5 10]);
输出结果:



最后

以上就是欣喜柚子为你收集整理的matlab常用函数备忘录(持续更新)前言:的全部内容,希望文章能够帮你解决matlab常用函数备忘录(持续更新)前言:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部