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

  • 相关阅读:
    [学习笔记]康托展开
    [模板]平衡树
    [题解]涂色
    [学习笔记]Lucas定理
    欧拉定理及其证明
    一些杂题(排列组合
    swift 动画合集
    UIDynamicAnimator UIKit动力学
    swift 当协议遇见了泛型
    Swift 协议
  • 原文地址:https://www.cnblogs.com/leroncheung/p/4912945.html
Copyright © 2020-2023  润新知