MatLab学习笔记-创新互联

MatLab(Matrix Laboratory),一种以矩阵计算为基础的交互式程序语言,专门针对科学,工程计算以及绘图的需求。函数众多。

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了陵城免费建站欢迎大家使用!

常用命令

Esc恢复命令输入的空白状态

上下键:调出上一行下一行命令

exit/quit退出并关闭Matlab

figure/figure(2)

logo显示MatLab的Logo

clc清屏

help sqrt

demo

formatcompact

formatloose

cleari, j

clearall

who或whos,检查工作空间中的变量及其阶数

语句的结尾可用回车符或逗号,此时会立即显示运算结果。如果不希望显示结果,就以分号结尾。此时运算仍然执行,指示不显示。

若赋值时,只剩下右侧的表达式,而没有被赋值的变量,则Matlab会自动给出一个临时变量ans,把运算结果暂存在ans中。

基本语法

Matlab中的变量或常量都代表矩阵,标量应看作1*1阶矩阵。

a=[1 23; 4 5 6; 7 8 9],同一行元素之间以逗号或空格分开,不同的行以分号分开。

变量的元素用圆括号()中的数字(下标)来注明,二维的下标以逗号分开。

如果赋值元素的下标超出了原来矩阵的大小,矩阵的行列会自动扩展

给全行赋值,可用冒号 a(5, :)=[5, 4, 3]      //[]用来表示矩阵

b =a([2, 4], [1, 3])   //把a的第2,4行及第1,3列交点上的元素取出,构成一个新矩阵b

a([2,4, 5], :)=[]        //抽去a中的第2,4,5行,利用空矩阵[]的概念,空矩阵不同于零矩阵

a(2,4)      //a矩阵的a[2][4]元素

复数用i或j来表示 c=3+5i

z =[1, 3;5, 7]+[2, 4;6, 8]*i       // ‘*’不可省略

w=z'         //共轭转置

w=conj(z) //共轭

w=conj(z)'        //转置

基本矩阵

zeros(m,n), ones(m, n), rand(m, n), linspace(a, b, n), eye(n)         //linspace(a, b, n)在a与b之间均匀地产生n个点值,形成1*n维向量; eye产生单位矩阵

大矩阵可由若干个小矩阵组成,但必须行列数正确,恰好填满全部元素

元素显示不精确时,可用显示单个元素的命令来得到它的精确值,或改用长格式(format long)来显示整个矩阵

[n,m]=size(z)  //获得矩阵阶数,若要自己编写矩阵A和B相加减,必须先求nA,mA,nB,mB,并检验是否满足nA=nB,mA=mB。作相乘时,正好相反

x=[1,2, 3]; y=x-1

l=length(X)       //一维数组,length不分行和列

inv(z)        //求逆矩阵,z必须为n阶方阵

x=inv(D)*B=D\B      //把D的逆矩阵左乘B,记作D\, 称之为左除。

x=B*inv(D)=B/D      //把D的逆矩阵右乘B,记作/D, 称之为右除。

*, \, /, ^, expm, logm, sqrtm是将矩阵作为一个整体进行运算的

+, -, sqrt, exp, log是对矩阵中的元素分别进行的(按元素群运算)

矩阵结构形式的提取与变换

 fliplr矩阵左右翻转fliplr(A),flipud矩阵上下翻转flipud(A),reshape阶数重组, 元素总数不变reshape(A, 2, 6)

rot90矩阵整体反时针旋转90度rot90(A), diag提取或建立对角阵diag(A), tril取矩阵的左下三角部分tril(A),triu取矩阵的右上三角部分triu(A), :将元素按列取出排成一列B=A(:)'

元素群运算

数组赋值

1) 用两个冒号组成等增量语句,格式:t=[初值:增量:终值],增量为1 时可以省略

2) 用linspace函数,格式:linspace(初值,终值,点数)

元素群运算也就是矩阵中所有元素按单个元素进行运算。为了与矩阵作为整体的运算符号相区别,要在运算符*,/,\,^前加一点符号‘.’,以表示在作元素群运算。参与运算的两个矩阵必须是同阶的。非方阵不能按整体作矩阵乘幂运算的。

Eg :

x=[0:0.1:pi/4]’;

disp(‘   x   sin(x)   cos(x)   tan(x)   ’)

disp([x,sin(x),cos(x),tan(x)])

逻辑判断

1 数学及逻辑运算符(~=不等于)

2 逻辑字符检查(all, any, find, isnan, isreal, isstr)

3 位运算

4 集合运算

流程控制语句

1 if语句

1) if(expression) section, end

2) if(expression1) section1, elsesection2, end

3) if(expression1) section1, elseifexpression2 section2, else section3, end

2while语句

while(expression)section, end

3 for 语句

for k=初值:增量:终值 语句组A, end

4 switch语句

switch表达式(标量或字符串)

case 值1

语句组A

case 值2

语句组B

… …

Otherwise

语句组N

end

基本绘图方法

Graph3d,Graph4d,Graphics,specgraph函数库

基本作图函数说明:

Plot绘制连续波形 stem绘制离散波形       subplot一个窗口内绘制多副图

axis定义x,y轴大最小值        hold保留目前曲线 grid画网格线 xlabel/ylabel为x/y轴加上说明

title为图形加上标题    text在图上加文字说明 gtext用鼠标拖动来确定标注文字的位置

1直角坐标中的两维曲线

1) plot(y)输入一个数组的情况

2) plot(x,y)输入两个数组的情况

如果数组x和y具有相同长度,命令plot(x,y)将绘出以x元素为横坐标,y元素为纵坐标的曲线。

2线形,点型,颜色

Y***m品红c青r红g绿b蓝w白k黑

.,o,x,+,-,*,: 虚线,-.点划,- -长划

Eg: plot(x1, y1, ‘:y’), plot(x2,y2,’+r’)

3多条曲线的绘制

1) plot(t, [y1, y2, …])        要求所有输出量有同样的长度和同样的自变量向量,不便于用户自行设定线型和颜色

2) hold命令    坐标选择要得当,注意及时解除保持状态hold off

3) 在plot后使用多输入变量

plot(x1, y1,’+g’, x2, y2,’:r’ …)

4) plotyy命令

plotyy(t,y,t2,y2)

屏幕控制

1 图形窗的控制

figure创建图形窗 gcf获取当前图形窗的句柄  clf清除当前图形窗        shg显示图形

refresh刷新图形   close关闭图形窗  close all关闭所有图形窗

2 轴系的控制

axes在任意位置创建坐标系        gca获取当前坐标系的句柄 cla清除当前坐标系       ishold保持当前图形状态为真

3 图形对象

line创建直线          surface创建曲面   patch创建图形填充块           light创建照明        p_w_picpath创建图像

4 图形句柄操作

5工具

6 其他

subplot(n,m,p):将图形窗口分为n*m个子图,在第p个子图处绘制图形

其他二维绘图命令

虚数的绘图

坐标比例和尺寸的设定---axis命令

图形窗口中的直接编辑

M文件及程序调试

M文件分两种:一种是主程序文件(script file),由用户为解决特定的问题而编制的;另一种是子程序,也称为函数文件(function file),它必须由其他文件调用

主程序文件

1) 用clear,close all等语句开始,清除掉工作空间中原有的变量和图形,以避免其它已执行程序残留数据对本程序的影响。前几行通常是注释,说明此程序的用途。注释必须以%开始。在MatLab中输入help filename时,屏幕上会将该文件中以%起头的最前面几行的内容显示出来。

2) 程序主体。注意避免中文的字符,否则会引起死机

3) 文件名不要用汉字。避免出现汉字路径名。

人机交互命令

估值并执行,流程控制语句,程序,函数和变量,变元管理,信息显示,人机交互命令

pause(n)程序执行到此处,暂停n秒,再继续执行。如果没有括号参数,则等待用户输入任意键后才继续执行。

keyboard程序执行到此处暂停,在屏幕上显示字符K,并把程序的输入和执行权交给用户。如果需要系统恢复运行原来的程序,只需输入字符串return。在M文件中设置该命令,有利于进行程序调试,以及临时修改变量内容。

Ctrl+C强行停止程序运行的命令

函数文件

由function起头,后跟的函数名必须与文件名相同

有输入输出变元(变量),可进行变量传递

除非用global声明,程序中的变量均为局部变量,不保存在工作空间中

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:MatLab学习笔记-创新互联
分享链接:http://scyanting.com/article/dioodo.html