码迷,mamicode.com
首页 > 其他好文 > 详细

matlab学习笔记

时间:2015-10-27 01:43:53      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:

 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

 

 

基本绘图方法

Graph2d,Graph3d,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创建照明         image创建图像

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声明,程序中的变量均为局部变量,不保存在工作空间中

matlab学习笔记

标签:

原文地址:http://www.cnblogs.com/leroncheung/p/4912945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!