Matlab(MATrix LABoratory),也即矩阵实验室,因而数据在其中都是以矩阵为基本数据单位保存的,就算一个数字,也是1*1的矩阵。本篇总结Matlab的一些基本的语法和函数用法,刚接触Matlab的可以看看。
(1)假如现在要创建3*3矩阵,如
>> A = [1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9
可以由save函数保存为mat文件,用的时候用importdata(filename)取出,如
save example A
或者是:
save 'example.mat' 'A'
则在右边文件路径下生成example.mat,使用importdata(filename)取出
>> B =importdata('example.mat') B = 1 2 3 4 5 6 7 8 9
(2)矩阵的基本运算包括+、-、*、/(右除)、\ (左除)、^ (乘方)、.* (点乘)、.^ (点乘方)、./ (点右除)等等
+、-、* 为矩阵的常规运算,不作解释
/(右除),例如A/B,表示将A与B的逆矩阵相乘
\ (左除),例如A\B,表示将A的逆矩阵与B相乘
^ (乘方),例如A^2,则表示A*A;A^3则表示A*A*A
.* (点乘)、.^ (点乘方)、./ (点右除),对于这些加了. 的运算符,要求运算符两边的矩阵必须是同等大小,然后执行的操作是两个矩阵中对应位置的元素进行乘、乘方、右除运算
(3)矩阵的行列式、秩、求逆、迹、范数、特征值与特征向量
若A为m*n矩阵,求行列式: det (A)
求逆矩阵:inv(A)
求秩:rank (A)
求迹(矩阵的特征值之和):trace(A)
求范数有:
A的1范数下的条件数:cond(A,1)
A的2范数下的条件数:cond(A, 2)
A的无穷范数下的条件数为:cond(A , inf)
求矩阵特征值与特征向量有:
X = eig ( A):表示求矩阵A的全部特征值,构成向量X
[Y , D] = eig (A):b表示矩阵A的全部特征值构成对角阵D,A的特征向量构成Y的列
(4)利用MATLAB内置的函数产生矩阵
ones ():生成全为1的矩阵
zeros ():生成全为0 的矩阵
eye ():生成单位阵
rand():生成在(0 , 1)区间均匀分布的随机阵
randn():生成均值为0,方差为1的标准正太分布随机矩阵
company ():生成伴随矩阵
hilb ():生成Hilbert 阵
magic():生成魔方阵
用法如ones(4,5) 、ones(3)
(5)矩阵的拼接
水平拼接:C=[A B ]或C=[A ,B]
垂直拼接:C=[A ; B]
亦可由拼接函数cat()
C1 = cat (1 , A1 , A2); %垂直拼接
C2 = cat (2 , A1 , A2); %水平拼接
C3 = cat (3 , A1 ,A2); %三维数组
(6)矩阵的寻访
1.利用下标寻访
>> A =[1 2 3 ;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> b =A(2,2) b = 5
2.多元素寻访
M (1 , : ) 访问第1行所有元素
M (1:3 , :) 访问第1~3行所有元素
M(: , 2) 访问第2列所有元素
M (: , 2:3) 访问第2~3列所有元素
M (1:2 , 2:3) 访问第1~2行,第2~3列所有元素
M (:) 访问所有元素
(1)M文件
可以先把程序编写存储在M文件中,然后直接按下run按钮运行,这部分较为基础
(2)M函数
M函数是一个特殊的M文件,通常将某个函数定义于此,并将该函数与其他M文件放置在同一工作路径下,就可在其他M文件中调用该函数。
该M函数文件的开头格式为:
function 表示返回变量列表 = 函数名 ( 输入变量列表 )
输入变量要用逗号隔开,输出变量多于1个的时候,也要用逗号隔开,并且用方括号括起来。该M函数文件的文件名需保存为函数名
示例
function [y1 , y1] = func ( x , y ,z ,w),
语句组
end
并且该M函数文件名必须存为func.m
(1)数据的输入和输出
input函数可用实现数据的输入,该函数的调用格式为
A = input ( 提示信息,选项)
其中,提示信息为一个字符串,用于提示用户输入什么样的数据
示例:
>> A = input('请输入A的值:') 请输入A的值:1 A = 1
当函数括号中第二个参数使用’s’,则可以输入一个字符串保存至输出变量中
示例:
>> A = input('How are you? ' , 's') How are you? I am fine. A = I am fine.
对于数据的输出,则使用函数disp,调用格式为:
disp (输出项)
输出项可为字符串,也可为矩阵,也可为数据变量;当将字符串与数据变量一块输出显示时,需用num2str(),将变量转换为字符串。
示例:
>> A = 2 A = 2 >> disp(['1+1 = ',num2str(A)]) 1+1 = 2
(2)判断语句
判断语句格式为
if 表达式
执行程序块
end
或者
if 表达式
执行程序块1
else
执行程序块2
end
或者有多个选择时,可以if …elseif…else…end,中间可包含多个elseif语句
(3)分支结构
分支语句结构为:
switch 分支语句
case 条件语句
执行程序块
case {条件语句1 , 条件语句2 ,…}
执行程序块
end
(4)for循环语句
for 语句调用的基本格式为:
for index = 初值 : 增量 : 终值
语句组
end
for 循环语句还可以嵌套使用
示例
>> for i = 1:100
for j =1:100
A(i ,j) =i+j;
end
end
(5)while循环语句
while 表达式
执行程序块
end
figure函数用于创建一个新的图形对象,用来显示图形,配合plot函数。
subplot函数用于生成与控制多个坐标轴,用法为subplot(m,n,p),即表示将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴
axis函数用于坐标轴的刻度与外在的显示,用法为 axis([xmin , xmax , ymin , ymax]),确定坐标轴的范围
title函数用于给当前轴加上坐标轴,用法为 title(‘string’)
xlabel,ylabel函数用于给x,y轴贴标签,用法为xlabel(‘string’),ylabel(‘string’)
legend函数用于在图形上添加图例,用法如legend(‘string1’ , ‘string2’ ,’ string3’ ,…., pos),pos表示图例的放置位置
plot函数用于绘制曲线图,用法如 plot(x1,y1, ‘ 线型颜色‘ , x2 , y2 ,‘线型颜色’ , …)
其中线型有+、o 、* 、. 、x、d、^、v、>、<、s、h、p
颜色有-、--、: 、-.
还有很多函数,这里不一一例举了。