Matlab学习
1 | A = [1 3 5]; |
如果存在多个输入参数,请使用逗号加以分隔:
1 | B = [10 6 4]; |
clc 函数清除命令行窗口。
函数
1 | disp('hello world') |
二维绘图
r--'
字符串为线条设定。每个设定可包含表示线条颜色、样式和标记的字符。标记是在绘制的每个数据点上显示的符号,例如,+
、o
或*
。例如,'g:*'
请求绘制使用*
标记的绿色点线。请注意,为第一幅绘图定义的标题和标签不再被用于当前的图窗口中。默认情况下,每次调用绘图函数、重置坐标轴及其他元素以准备新绘图时,MATLAB® 都会清除图形。
要将绘图添加到现有图形中,请使用
hold
。
1 | x = 0:pi/100:2*pi; |
三维绘图
1 | [X,Y] = meshgrid(-2:.2:2); |
surf
函数及其伴随函数mesh
以三维形式显示曲面图。surf
使用颜色显示曲面图的连接线和面。mesh
生成仅以颜色标记连接定义点的线条的线框曲面图。(surf填充-sruface)
M文件
脚本文件
函数文件
1 | 脚本文件 |
函数名为mymax,文件名为mymax.m(必须相同)。它需要五个数字作为参数并返回最大的数字。
1 | 创建函数文件,名为mymax.m 并输入下面的代码: |
符号变量与符号表达式
1 | 需要用syms或sym定义,例如 |
关于符号表达式的基本命令
命令 | 含义 |
---|---|
pretty(s) | 将s显示为数学书写形式 |
symsum(s,x,a,b) | 对s中的x从a到b求和 |
findsym(s) | 给出s中所有的符号变量 |
findsym(s,n) | 给出s中离x最近的n个符号变量,n大于s中符号变量个数时则按字母表顺序返回符号变量 |
subs(s,a,b) | 将s中的a置换成b |
double(s) | 将s转换成数值形式 |
str2num(s) | 字符变量转换为数值变量 |
num2str(s) | 数值变量转换为字符变量 |
sym(a) | 将a转换为符号变量 |
digits(d) | 给出有效数字个数为d的近似值 |
vpa(s,d) | 计算s在精度为d位有效数字的解 |
eval(s) | 执行符号表达式s |
命 令 | 含 义 |
---|---|
collect(s) | 合并s中的同类项 |
compose(f,g,x,y) | 计算复合函数f(g(y)),x,y分别为f,g的自变量 |
g=finverse(f) | 计算f(x)的反函数,g的自变量仍为x |
expand(s) | 展开表达式s |
factor(s) | 因式分解s |
[N,D]=numden(s) | 通分s中各式,其和的分子为N,分母为D |
simplify(s) | 对s进行综合化简 |
simple(s) | 给出s的所有最简式 |
微积分
命 令 | 含 义 |
---|---|
limit(f,x,a) | 计算函数f(x)当x->a时的极限 |
limit(f,x,a,’right’) | 计算函数f(x)当x->a+时的右极限 |
limit(f,x,a,’left’) | 计算函数f(x)当x->a-时的左极限 |
x=fminbnd(f,a,b) | 计算函数f(x)在区间[a,b]上的最小值点 |
[x,fmin]=fminbnd(f,a,b) | 计算函数f(x)在区间[a,b]上的最小值点及最小值fmin |
diff(f,’x’,n) | 计算函数f(x)对变量x的n阶导数,’x’可省 |
int(f,x) | 计算函数f(x)的不定积分,积分变量为x |
int(f,x,a,b) | 计算函数f(x)在[a,b]上的定积分(符号) |
quad(f,a,b) | 计算函数f(x)在[a,b]上的定积分值 |
taylor(f) | 计算函数f(x)在x=0处的5阶泰勒展开式 |
taylor(f,n,x,a) | 计算函数f(x)在x=a处的n-1阶泰勒展开式 |
▲需要注意的是,在进行这些计算前必须申明是符号计算,即要加上syms x y;等语句
基本的绘图步骤
步 骤 | 典 型 代 码 |
---|---|
1. 准备绘图数据 | x = 0:0.2:12; y1 = bessel(1,x); |
2. 选择一个窗口并在窗口中给图形定位 | figure(1) ,subplot(2,2,1) |
3. 调用基本的绘图函数 | h = plot(x,y1,x,y2,x,y3); |
4. 选择线型和标记特性 | set(h,‘LineWidth’,2,{‘LineStyle’},{’–’;’:’;’-.’}) |
5. 设置坐标轴的极限值、标记符号和网格线 | axis([0 12 -0.5 1]) |
6. 使用坐标轴标签、图例和文本对图形进行注释 | xlabel(‘Time’)ylabel(‘Amplitude’) |
7. 输出图形 | print -depsc -tiff -r200 myplot |
# 二维曲线图
1 | 例: |
# 函数绘图
1 | fplot(‘function’,范围),例如 |
#符号函数绘图
1 | 格式ezplot(f,[a,b]) 画出符号函数f在[a,b]上的图形 |
# 极坐标图形
1 | MATLAB提供了polar函数来在极坐标下绘制图形 : |
图形控制与修饰
命令 | 含义 |
---|---|
axis auto | 坐标轴缺省设置 |
axis equal | 纵、横轴采用相等单位长度 |
axis image | 纵、横轴采用相等单位长度,且坐标框紧贴数据范围 |
axis([x1 x2 y1 y2]) | 设定坐标范围 |
grid on | 画出网格线 |
grid off | 不画网格线 |
hold on | 使以后图形画在当前图形上 |
hold off | 使以后图形不画在当前图形上 |
命令 | 含义 |
---|---|
title(x,y,‘name’) | 在(x,y)处标示图名 |
xlabel(‘xtext’) | 横坐标轴名 |
ylabel(‘ytext’) | 纵坐标轴名 |
legend(‘first’,’second’,n) | 对一个坐标系中的两幅图作出图例注解 |
figure | 另开图形窗口 |
subplot(m,n,k) | m×n幅子图的第k幅称为当前图 |
多个图形的绘制方法
1 | subplot函数 可以实现多个图形的绘制: |
# 三维网线图
1 | 1.mesh(X,Y,Z) ,例 |
数值变量与符号变量
数值变量的常用函数,一般都可以直接用在符号变量上,比如三角函数,这些都是可以通用的,而且函数的含义也完全一样。 但偏偏有些函数非常蛋疼,对符号变量与数值变量都可以进行操作,但操作的含义完全不同,比如diff,diff对于一个数值变量的运算结果是差分,而对于一个符号变量的运算结果则是求导 。
另外也存在很多函数只能对数值变量操作,比如离散傅里叶变换fft。还有很多函数只能对符号变量操作,比如泰勒展开taylor。因此在matlab使用中,一定要区分变量的类型,其实真的用起来也好区分,因为完成特定的计算任务,要么全部用数值,要么全部用符号,这也符合一般处理问题的原则。
4.字符串的常用函数
matlab中字符串的常用算符就更少了,但都非常有用,这里介绍几个: 1)num2str和str2num:可以实现数值变量和字符串变量的转换,比如 a=1 b=num2str(1)复制代码运算结果显示a是一个数值变量,b是一个字符串变量,函数名中的2就是英文中to的意思,也就是把num数值类型转化成str字符类型。str2num就是这个函数的反函数,这两个命令结合,可以实现特定的功能,比如提取一个数字的最高位: a=123456 b=num2str(a) c=b(1) d=str2num©
2.3for循环
for循环的语法是:
1 | for 数值变量=向量 |
Author: Mrli
Link: https://nymrli.top/2019/01/23/Matlab基础教程/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.