概述
前言:
本博文用于记录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的矩阵。
输出结果:
>>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常用函数备忘录(持续更新)前言:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复