piekenius' Blog

matlab笔记

Word count: 1.8kReading time: 7 min
2023/06/06

linspace(a,b,n)
logspace
a([m n],[I j])
a(m1:m2,n1:n2)

strcat()
length char double strcmp() ischar findstr() deblank()
cat(dimension,p1,p2,…)
remat(p,[])
reshape(p,[])
reshape
is*
diag() triu() tril()
A’ rot90() fliplr flipud() flipdim(a,dim)
inv det rank trace
mean median prod sum cumsum cumprod
sort(A,dim)dim=1,colony dim=2,row
conv() deconv()=[q商式,r余式]
polyval,polyvalm(poly,m) roots() poly(roots())一个向量
线性方程组求解的三种方法:A\B;x=rref([A,B]);inv(A)*B
round floor fix ceil
rem被除数 mod除数
factor factorial gcd lcm

m文件:save和load
function: input(‘表达式’),’s’表示字符串
disp()
pause() pause off/pause on

if elseif

switch 表达式(标量或字符串) case 表达式123(标量字符串或元胞矩阵) otherwise 不用加break
try catch lasterr 试探性 其中总有一个可以实现,如果lasterr返回空字符串则说明try实现,其他则是catch实现

for 循环变量=起始值:步长:终止值
循环体
end
*当循环变量等于矩阵表达式时,依次等于其中元素
循环嵌套与自然筛选法

while表达式
循环体语句
end
break,continue,return不执行后续代码

函数文件基本格式:
function 输出参数列表=函数名(输入参数列表)
注释说明语句段
程序语句段
输出形参多于1个时,要用[ ]
函数递归
nargin和nargout 判断输入/输出参数个数进行函数分类处理

gloabal 变量名 全局变量,不过要在函数文件和命令窗口中都写入

keyboard和menu

设置断点 debug

绘图
1.plot函数:

  • 一个输入参数:x为实向量,复数向量,m*n维矩阵时的绘图
  • 多个输入参数:plot(x1,y1,x2,y2,…)
  • plot(x, y, ‘s’)
  • 双纵坐标绘制函数:plotyy(x1,y1,x2,y2)横坐标标度相同,左纵坐标用于x1y1,右纵坐标用于x2y2;
  • 对数坐标二维图形:
    semilogx(x1,y1,选项1,x2,y2,选项2,…): x为对数
    刻度,y为线性刻度。
    semilogy(x1,y1,选项1,x2,y2,选项2,…): y为对数
    刻度,x为线性刻度。
    loglog(x1,y1,选项1,x2,y2,选项2,…):x和y均为对
    数刻度。

2.极坐标

  • polarplot(theta,rho,’s’)
  • latex: text(0.3,0.5,’sin({\omega}t+{\beta})’)

3.绘图调整

  • axis([xmin xmax ymin ymax zmin zmax])

4.实例

5.图形保持
hold on – 保持原有图形
hold off – 刷新原有图形
hold – 两种状态之间切换

6.图形分割 subplot(m,n,p)可以细分

7.特殊二维图形:

  • barh/bar(柱状图)和area(面积函数)
  • 饼图pie(x)
  • 散点图scatter(x,y)
  • 直方图hist(x,n):将x中的元素分成n份,然后用间隔相同的条形表示,返回每个条形中元素的个数。若x为矩阵,则hist函数对每一列数据生成一个直方图。如果n缺省就默认为10
  • 玫瑰花图rose(theta)
  • 火柴杆图stem(x,y)
  • 阶梯图stairs(x,y)
  • 误差条图errobar(x,e):e指x中每个元素的误差

8.fplot(@fun,lim,tol,’s’)

9.三维图形 plot3()

10.三维曲面

  • 生成网格 并解二元方程
    x=a:dx:b;
    y=c:dy:d
    [X,Y]=meshgrid(x,y);
  • surf三维曲面图/mesh三维网格图绘制三维曲面,其中z必须为矩阵而不能是向量或者标量,所以首先要用meshgrid生成一个二维坐标系,才会产生z
  • meshc函数 – 带等高线的三维网格函数
    l meshz函数 – 带底座的三维网格函数
    l surfc函数 – 带等高线的三维曲面函数
    l surfl函数 – 具有光照效果的三维曲面函数
  • [x,y,z]=sphere(n) – 圆心位于原点,半径为1的单
    位球体,n代表边的个数
    l [x,y,z]=cylinder(R,n) – 柱面,R是一个向量,存
    放柱面各个等间隔高度上的半径
    l Z=peaks(n) – 多峰函数,默认等分数为48

11.视角处理 view(方位角,俯仰角);

  • 旋转三维图形
    rotate(h,direction,alpha):将句柄h的对象绕方向旋
    转一个角度
    •h是被旋转的对象,例如h=figure
    •direction与view函数设置视点的方向类似,也有
    两种设置方法:球坐标设置法,设置为[theta,phi],
    其单位是“度”;直角坐标法,即[x,y,z]
    •alpha是绕方向按照右手法则旋转的角度
  • 背景颜色处理 colordef none/black/()
    -表面图形的着色
    shading faceted – 将每个网格片用其高度的对应的颜
    色进行着色,但网格线保留,其颜色是黑色
    l shading flat – 将每个网格片用同一个颜色进行着色,
    网格线也相同颜色,表面更加光滑
    l shading interp – 在网格片内采用颜色插值处理,得出
    的表面图显得最光滑

12.隐函数绘图
对于函数f=f(x):
l ezplot(f):在区间-2pi<x<2pi绘制图形
ezplot(f,[a,b]):在区间a<x<b绘制图形
l 对于隐函数f=f(x,y):
l ezplot(f):在区间-2pi<x<2pi和-2pi<y<2pi绘制f(x,y)=0图形
ezplot(f,[xmin,xmax,ymin,ymax]):在区间xmin<x<xmax 和
ymin<y<ymax绘制f(x,y)=0图形
l ezplot(f,[a,b]):在区间a<x<b和a<y<b绘制f(x,y)=0图形
l 对于参数方程x=x(t)和y=y(t):
ezplot(x,y):在区间0<t<2*pi绘制x=x(t)和y=y(t)图形
ezplot(x,y,[tmin,tmax]):在区间tmin<t<tmax绘制x=x(t)和
y=y(t)图形

13.句柄 h=plot()

  • set(h,属性一,选项,属性二,选项…)

符号运算
f=sym(‘’)

  • 用sym函数建立 (R2018后使用str2sym函数)
    使用已定义的符号变量建立
  • 建立符号矩阵 A=str2sym(‘[]’)
  • 符号矩阵的修改 subs(A,old,new)
  • 调用符号矩阵 sym(A)
  • 转化为数值矩阵 double(A)
  • 求和符号=symsum()
  • numden函数提取符号表达式的分子和分母 [n,d]=numden(s)
  • 因式分解与展开
    l factor(s): 对符号表达式s分解因式
    l expand(s): 对符号表达式s进行展开
    l collect(s): 对符号表达式s合并同类项
    l collect(s,v): 对符号表达式s按变量v合并同类项
    simplify(s): 应用函数规则对s进行化简
  • digits(n) —— 设置可变精度,缺省16位
    vpa(x,n) —— 显示可变精度计算
  • 微积分
    | limit(f)
    | limit(f,x,a)
    | limit(f,x,a,’left’)
    | limit(f,x,a,’right’)
    | diff(f) 求表达式f对默认自变量的一次微分值;
    | diff(f, t)求表达式f对自变量t的一次微分值;
    | diff(f,n)求表达式f对默认自变量的n次微分值;
    l diff(f,t,n) 求表达式f对自变量t的n次微分值。
    int(f)求表达式f对默认自变量的积分值;
    int(f, t) 求表达式f对自变量t的不定积分值;
    int(f, a, b) 求表达式f对默认自变量的定积分值,积分区间为[a,b];
    int(f, t, a, b) 求表达式f对自变量t的定积分值,积分区间为[a,b]
  • 求解代数方程
    solve(方程)
    solve(方程,变量)
  • 常微分方程求解
    [x,y,…]=dsolve(f,c,v)f在初始条件c下的特解,变量v;如果没有初始条件c,则求通解
    Dny y的n阶导数
CATALOG