几个常用命令

  1. help:查看某个命令的帮助文档
  2. version:获得当前Matlab的版本
  3. pwd:给出当前的工作目录名
  4. dir:ls或dir列出当前目录下的所有文件名清单
  5. cd:改变目录
  6. what:列出当前工作目录下所有的M文件、MAT文件和MEX文件
  7. who:列出当前工作空间里的变量名
  8. clock:时钟设置命令
  9. data:日期设置命令
  10. path:显示MATLAB的当前搜索路径
  11. getenv:getenv(‘matlabpath’)显示当前的MATLAB路径
  12. diary on,diary off:利用diary可以记录MATLAB窗口中进行的所有操作
  13. !(escape):符号!是MATLAB的扩展运算符,通过该符号,用户有权使用DOS或UNIX命令
  14. demo:该命令引导使用者通过菜单选择为数众多的演示程序
  15. format:数据显示格式。系统默认的数据显示格式是5位
  16. clear:清除工作空间中所有的变量
  17. clear all:从工作空间中清除所有变量和函数
  18. clf:清除图形窗口内容
  19. delete<文件名>:从磁盘中删除指定文件
  20. load name:载入‘name’文件中的所有变量到工作空间
  21. load name x y:载入‘name’文件中的变量x,y到工作空间
  22. save name:保存工作空间变量到文件name.mat中
  23. save name x y:保存工作空间变量x y到文件name.mat中
  24. pack:整理工作空间内存
  25. size:显示当前工作空间中变量的尺寸
  26. length:显示当前工作空间中变量的长度
  27. disp:显示当前工作空间中的变量

运算符

  • 反除运算符:\:该运算符得到商的倒数,即a\b等于b/a
  • 不等于:~=
  • 逻辑与:&
  • 逻辑或:|
  • 逻辑非:~

变量名

  1. 区分大小写
  2. 长度不能超过31位
  3. 变量名以字母开头,可以是字母、数字、下划线组成

分支结构

if-else-end语句中的else子句是可选项
嵌套:if-elseif-elseif-…-else-end

循环结构

for-end
while-end;该语句中的循环判断语句为矩阵时,当且仅当所有的矩阵元素非零时,逻辑表达式的值为真
break;退出循环体,执行循环后的其他语句

数据输入与输出

  1. input:通过键盘输入数据
  2. fprintf:输出格式化信息和数字
  3. disp:可以在命令窗口输出数字、向量、矩阵或字符串,无需变量名
  4. sprintf:将输出写入字符串

数组

  1. MATLAB中,行数组与行向量是同义语,列数组和列向量是同义语
  2. 对于加法和减法,数组运算与线性代数中的向量运算相同。但是符号.*和./分别被称为数组乘法运算符和数组除法运算符,它们不同于矩阵和向量乘除法。
  3. 计算数组长度:length(x)
  4. 删除数组元素:z(3)=[]
  5. MATLAB里,二维数组变量等同于一个矩阵,每一行的元素以分号结束
  6. 二维数组的整行或整列可以用一个冒号表示。例如:m(1,:)和m(:,3)分别表示m的第一列和第三列
  7. 只有长度相同的向量才能在if语句中进行比较,如果将两个长度不同的向量进行比较,命令窗口会出现出错信息提示。在if语句中比较字符串之前一定要通过增加空格使字符串长度完全相同

MATLAB特有的数字特性

在MATLAB里,所有的变量均为双精度,整数变量和实数变量之间没有区别,实数变量和复数变量同样也没有区别

初等数学函数

  • sin(x)
  • cos(x)
  • tan(x)
  • asin(x)
  • acos(x)
  • atan(x):[-π/2,π/2]
  • atan2(y,x):与atan(y/x)结果相同,但是-π/2≥atan2(y,x)≥π
  • sinh(x)
  • cosh(x)
  • tanh(x)
  • asinh(x)
  • acosh(x)
  • atanh(x)
  • abs(x):x的绝对值
  • angle(x):复数x的相位角
  • sqrt(x):x的平方根
  • real(x)
  • imag(x)
  • conj(x):复数x的共轭数
  • round(x):向最近整数取整
  • fix(x):向0取整
  • floor(x):向-∞取整
  • ceil(x):向+∞取整
  • sign(x):如果x>0,则为+1;如果x<0,则为-1
  • mod(x,y):除后余数:x-y*fix(x/y)
  • rem(x,y):除后余数:x-y*fix(x/y).如果y≤0,则与mod不同
  • exp(x):以e为底的指数
  • log(x):以e为底的对数
  • log10(x):以10为底的对数
  • factor(x):将x分解质因数
  • isprime(x):如果x为素数,值为1,否则为0
  • factorial(x):x!

功能函数

  1. sort(x):将x按照升序重新排列,如果x是矩阵,则重新排列按列进行
  2. sum(x):如果是x是矩阵,返回值由矩阵各列元素和组成的一个行向量
  3. max(x),min(x):如果x是矩阵,函数值为一个行向量,每个元素为矩阵相应列的最大或最小值
  4. rand(n),返回一个nxn的矩阵,元素全是随机数。除非特别规定,否则所生成的是0~1之间均匀分布的随机数
  5. eval:该命令可以作为字符串被编辑,然后用eval执行。字符串可以通过input读取,或在程序中创建

M文件

  1. M文件可以分为脚本文件和函数文件两种
  2. 脚本文件操作对象为MATLAB工作空间内的变量,并且在脚本执行结束后,脚本中对变量的一切操作均会被保留。在MATLAB语言中也可以在脚本内部定义变量,并且该变量将会自动地被加入到当前的MATLAB工作空间中,并可以为其他的脚本或函数引用,直到MATLAB被关闭或采用一定的命令将其删除
  3. MATLAB语言的函数文件包含5个部分:
    1. 函数题头:指函数的定义行,是函数语句的第一行,在该行中将定义函数名,输入变量列表以及输出变量列表等
    2. HI行:指函数帮助文档的第一行
    3. 帮助信息
    4. 函数体
    5. 注释部分:注释语句是以%引导的
  4. echo on,echo off:M文件执行过程中,其命令语句通常不出现在屏幕上,但是当echo on命令将echo开启后,屏幕上会显示所有语句。这时,用户可以看到正在执行的那部分M文件。
  5. 开发函数M文件最基本且很有效的一个办法是将第一行的函数语句用%注释掉,然后作为一个命令M文件进行测试。测试通过后,再将函数语句恢复

保存和载入数据

  1. save,load:如果直接使用save,则所有当前变量将被保存到默认文件matlab.mat里。load是与save相反的命令,它取回所有被save保存的变量。
  2. save file_name data-ascii:save能以ASCII码格式保存数据。带有ASCII选项的save和load非常重要,因为他们可以从MATLAB导入和导出数据
  3. 自动创建文件名:在一个M文件中,常常需要自动创建一些文件名。如果整条命令连同文件名写为一个字符串,则可通过eval执行。

硬拷贝

  • 使用diary命令制作一个屏幕内容的拷贝,如果其后不加任何文件名,屏幕内容将存入名为diary的文件中,此文件可以用文本方式打开。但是在diary文件里无法得到图形

Matlab中的默认常量

  1. pi:圆周率
  2. inf:无穷大
  3. nan:不定值,即0/0
  4. realmax:最大正实数
  5. realmin:最小正实数
  6. eps:浮点数的相对误差
  7. i:虚数单位
  8. nargin:函数实际输入参数个数
  9. nargout:函数实际输出参数个数
  10. ans:默认变量名

常用矩阵函数运算

  1. rot90():矩阵逆时针旋转90°
  2. flipud():矩阵上下翻转
  3. fliplr():矩阵左右翻转
  4. flipdim():矩阵的某维元素翻转
  5. shiftdim():矩阵的元素移位
  6. eig():计算矩阵的特征值和特征向量
  7. rank():计算矩阵的秩
  8. trace():计算矩阵的迹
  9. norm():计算矩阵的范数
  10. poly():计算矩阵的特征方程的根
  11. svd():矩阵的奇异值分解
  12. qr():矩阵的QR分解
  13. chol():矩阵的Cholesky分解
  14. schur():矩阵的Schur分解
  15. lu():矩阵的LU分解

符号运算

  1. syms 符号变量名1 符号变量名2 … 符号变量名n
    1. 用这种格式定义符号变量时不要在变量名上加字符串分界符,变量间用空格而不用逗号分隔
  2. 含有符号对象的表达式称为符号表达式,建立符号表达式有以下3中方法:
    1. 利用单引号来生成符号表达式
    2. 用sym函数建立符号表达式
    3. 使用已经定义的符号变量组成符号表达式
      符号表达式创建实例
      符号表达式创建实例
  3. Matlab中,数值矩阵不能直接参与符号运算,必须先转化为符号矩阵
    1. 将数值矩阵转化为符号矩阵:sym(数值矩阵)
    2. 将符号矩阵转化为数值矩阵:numeric(A)
  4. 关于符号矩阵的函数
    1. transpose(S):返回S矩阵的转置矩阵
    2. determ(S):返回S矩阵的行列式值
    3. 许多数值矩阵的函数,如diag,triu,tril,inv,det,rank,eig等也可直接应用于符号矩阵
  5. 符号表达式的四则运算
    1. factor(S):对S分解因式,S是符号表达式或符号矩阵
    2. expand(S):对S进行展开,S是符号表达式或符号矩阵
    3. collect(S,v):对S按变量v合并同类项,S是符号表达式或符号矩阵
    4. simplify(S):应用函数规则对S进行简化
    5. simple(S):调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程
  6. 常用的符号运算
    1. limit,求极限的符号函数,常用的格式:limit(F,x,a,‘right’)或limit(F,x,a,‘left’)。当自变量x从右侧或左侧逼近a时,函数F的极值
    2. diff,求微分用的符号函数,常用格式:diff(f,x,n),表示f关于x求n阶导数
    3. int,求积分用的符号函数,常用格式:int(f,r,x0,x1),f为所要积分的表达式,r为积分变量,若为定积分,则x0与x1为积分上下限
    4. symsum,级数求和的符号函数,常用的格式:S=symsum(fk,k,k0,kn),其中fk为级数的通项,k为级数自变量,k0和kn为级数求和的起始项和终止项,且可设为inf
    5. dsolve,求解常微分方程的符号函数,常用格式:dsolve(’eqnl’,’condition’,’var’);该函数求解微分方程eqnl在初始条件condition下的特解。参数var描述方程中的自变量符号,省略时按默认原则处理,若没有给出初值条件condition,则求方程的通解
      极限和极值的符号运算实例
      极限和极值的符号运算实例
      微积分的符号运算实例
      微积分的符号运算实例
      常微分方程符号运算实例
      常微分方程符号运算实例

图形绘制

  1. ploy,绘制二维图形,常用格式:plot(x1,y,option1,x2,y2,option2,…)
  2. plot3,绘制三维图形,常用格式:plot3(x1,y1,z1,option1,x2,y2,z2,option2,…)
  3. mesh,绘制三维曲面,常用格式:mesh(X,Y,Z,C),参数X,Y,Z都为矩阵值,C表示网格曲面的颜色分布。mesh(x,y,Z,C),参数x,y为长度分别是n和m的向量值,而参数Z是维数为mxn的矩阵
  4. surf,绘制三维阴影曲面,常用格式:surf(X,Y,Z,C),surf(x,y,Z,C)
    三维网格曲面图绘制应用实例
    三维网格曲面图绘制应用实例
    绘图命令使用实例
    绘图命令使用实例

MATLAB程序

MATLAB程序基本组成结构
MATLAB程序基本组成结构