目录
matlab介绍
变量
定义
指数值在数据处理的过程中可能会发生变化的数据量名称
命名规则
1、变量名以字母开头,可以是字母、数字、下划线、字符组成,但不能使用标点及空格符(如。、%等)。例如,“4ABC”、“AB%C”都是不合法的变量名。
2、变量名区分大小写
3、变量名长度不超63个字符
4、关键字(如if、while等)不能作为变量名
矩阵处理
矩阵的创建
直接输入矩阵
a=[1,2,3;4,5,6];
注:
1、必须使用方括号
2、当一行输不完时可以用续行“...”
3、行与行之间用分号或回车符分隔
4、同行元素用空格或逗号分隔
5、该方法只适合创建小型矩阵
通过函数运算创建矩阵
对于一些特殊矩阵,可利用matlab的函数创建
例
x=[0,pi/6,pi/3;pi/2,2*pi/3,5*pi/6];
y=sin(x)
y =
0 0.5000 0.8660
1.000 0.8660 0.5000
数组的生成
数组(一维矩阵)
1、i:j:k
创建从i开始,步长为j,到k结束的数字序列,即i,i+j,i+2j,...,k。如果j=0,则返回一个空矩阵。数字i、j和k不必是整数,该序列的最后一个数是小于或等于k。
2、i:k
若步长为1,则步长可以省略不写。
3、linspace(a.b,n)
在区间[a,b]上创建一个有n个元素的向量,n个元素为区间[a,b]等距节点。
4、linspace(a,b)
若参数n=100,则可以省略不写
注:以上关于数组生成的命令经常用于作图,如:
x = linspace(0,pi); %生成数组
y = sin(x); %计算函数
plot(x,y); %作图
特殊矩阵的生成
ones(n) 建立一个n*n的1矩阵
ones(m,n) 建立一个m*n的1矩阵
[m,n] = size(A) 提取A矩阵的大小(行列值)
ones(size(A)) 建立一个和矩阵A同样大小的1矩阵
zeros(m,n) 建立一个0矩阵,其具体用法与ones相同
eye(n) 建立一个n*n的单位矩阵
eye(m,n) 建立一个m*n的单位矩阵。注意eye命令只能用来建立二维矩阵
eye(size(A)) 建立一个和矩阵A同样大小的单位矩阵
矩阵的引用
若A是二维矩阵,则
A(i,j) 表示A的(i,j)元
A(i) 表示A一维化后的第i个元(matlab按照列存储矩阵)
A(i,:) 提取矩阵A的第i行
A(:,j) 提取矩阵A的第j列
矩阵运算
图
图像处理
读取一副图像
I = imread('lena512.bmp');
显示图像
imtool(I); (低版本为imview(I);)
figure;imshow(I);
figure;imtool(I);
存储图像
imwrite(I,'girl.bmp');
图像转换函数
rgb2gray(I); 彩色图转换灰度图
im2bw(I); 灰度图转换二值图 (可加参数,如:im2bw(I,0.4))
灰度图求逆的程序案例
for i = 1:600
for j = 1 : 600
B(i,j) = 255 - A(i,j);
end
end
如果是彩色图,则需要增加一个维数
子窗口显示
I = imread('cameraman.tif'); %读取图像
subplot(1,2,1),imshow(I); %输出图像
title('原始图像'); %在原始图像中加标题
subpolt(1,2,1),imhist(I); %输出原图直方图
title('原始图像直方图'); %在原图直方图上加标题
直方图均衡
A = histeq(I,256); %直方图均衡化,灰度级为256
加噪函数
J = imnoise(I,'gaussian',0,0.1);
均值滤波
J = filter2(fspecial('average',3),I)/255;
中值滤波
J = medfilt(I,[5,5]);