matlab常用函数备忘录(持续更新)

本文详细介绍了Matlab中的mat2gray、fspecial、mvnrnd等常见函数的使用方法及实例,包括图像处理、滤波算子生成、多元正态分布随机数据生成等内容,通过具体代码展示了函数的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

本博文用于记录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]);
输出结果:



转载于:https://www.cnblogs.com/hujingshuang/p/5119011.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值