前言:
本博文用于记录matlab中一些常见的函数,以便备忘,会持续更新。
1、mat2gray()
用来归一化二维矩阵的,这在图像处理中会经常用得到,详情请查看其MATLAB源代码。
在MATLAB中输入一个3*3大小的矩阵,经mat2gray()之后得到一个归一化后的矩阵。语句如下:
复制代码
从而可知,mat2gray()的原理是,找出矩阵a中的最大值Vmax与最小值Vmin,则元素之间最长距离为D=Vmax-Vmin。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16>> 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
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的高斯滤波模板,语句如下:
复制代码
可以看出,此函数产生的高斯核是经过归一化的。
1
2
3
4
5
6
7
8
9>> 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()
用来生成多元正态分布的随机数据。
引用方法有:
复制代码
其中MU是均值向量,SIGMA为协方差矩阵(若是一元情况,则MU为正态分布中的μ,SIGMA为正态分布中的σ^2),返回值R为随机产生的一个向量(该向量服从给定参数的多元正态分布)。若还带有参数cases,cases表示生成向量的个数,因此r是一个矩阵。
1
2R = mvnrnd(MU,SIGMA) r = mvnrnd(MU,SIGMA,cases)
下面举例说明:
复制代码
此代码中,给定参数为:均值向量MU=[2 3],协方差矩阵SIGMA=[1 0;0 1](很显然此处协方差矩阵是一个二阶的单位矩阵),cases为100(即100个向量),生成的矩阵r应为100x2的矩阵。
1
2
3>> r=mvnrnd([2 3],[1 0;0 1],100); plot(r(:,1),r(:,2),'r.') axis([-5 10 -5 10]);
输出结果:

复制代码
输出结果:
1
2
3
4
5
6>>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常用函数备忘录(持续更新)前言内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复