MATLAB常用操作合集(figure修改处理为主)
写在前面:文内内容来源于个人经验及网络搜集后的整理归纳,相关来源已在文中注明出处,仅供本人及有需者学习使用,请勿商业传播,转载请说明出处
1 .fig图像处理相关操作干货
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% MATLAB 一些常用操作合集 %%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 下述代码在MATLAB2016及后续版本使用正常 %%%
%%%%%%%%%%%% 此版本为V1.0 %%%%%%%%%%%%%%%%%
%%%%%%% 始于2022.06 持续更新收录中 %%%%%%%%
%%%%%%%%% 坐标轴改科学计数法:
两种方法,但输入的代码一样
方法1:在原代码plot下面键入
ax = gca;
ax.YAxis.Exponent = n;
上面两行代码中的YAxis代表Y轴,改为XAxis即为X轴
n代表10的2次方,即10^n,如要是改成10^3科学计数法即把n改为3
除XY轴和n外,其他参数为编译器固定格式不用改
方法2:在图窗中修改figure,不用打开原代码
打开需要修改的figure,选中要修改的图,在matlab命令行窗口输入上面两行代码即可修改。
%%%% 修改坐标轴粗细:
方法1:在plot括号中插入LineWidth
即把plot(x, y)改为
plot(x, y,'LineWidth',n)
n为坐标轴粗细,默认为1,双列论文中推荐3
方法2:打开所需要修改的图,选中要修改的部分,在命令行窗口输入以下代码
set(gca,'linewidth',n)
n为坐标轴粗细的参数,其他参数不用修改
注:要选中需要修改的图后再输入代码
%%%% 只保留xy轴 不要边框:
打开相应要修改的图
命令框输入 box off
%%%% 显示/隐藏坐标轴:
命令框输入
set(gca,'XColor','white')
set(gca,'Color','white')
box off
%%%% 显示/隐藏坐标轴数字:
命令框输入
set(gca,'XColor','white')
set(gca,'YColor','white')
set(gca,'Color','white')
box on
%%%% Figure 坐标轴字体及斜体正体修改:
打开.fig图片文件的属性编辑器,在X轴或Y轴的标签行输入如下代码
注:
\fontname{宋体}xxx %字体为宋体正体,内容为xxxxx
\it\fontname{Times new roman}xxx %字体为新罗马斜体,内容为xxx
\rm\bf\fontname{Times new roman}xxx %字体为新罗马正体粗体,内容为xxx
%注:\it 斜体 \rm正体 \bf黑体 可结合使用
%%%% 下标及上标输入方法:
打开.fig图片文件的属性编辑器,在X轴或Y轴的标签行输入如下代码
下标:_
上标:^
注:每个上下标都要单独输入一次^或_
例如:A1中若1为下标,则输入:A_1
A平方则输入: A^2
A负二次方输入:A^-^2
或在程序中输入:xlabel('{T=m^2/s}')
注:写在程序中需要LaTeX编译需要花括号{}括起来
%%%% 坐标轴绝对值及导数输入(字母上面有点):
打开.fig图片文件的属性编辑器,在X轴或Y轴的标签行输入如下代码
注:LaTEX格式码$$ xxx $$中输入,xxx为输入内容
例: $$ |\ddot X_2| $$ %dot在字母上面显示一个点 ddot显示两个点 以此类推
上述表达式显示 X二阶导数的绝对值
————————————————
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Developed in MATLAB R2019b %%
% Author and programmer: BroYuan %
% E-Mail: siyuantian@yeah.net %
%%%%%%%%%%%%%%%%%%%%%%%%% 2022.11.16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2. 数据列表文件读取操作
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% matlab读取操作
%%%% 注:所需读取的文件需和main.m文件放置在同一文件夹下,否则需要给出访问路径
读取excel表格:
数据:A = xlsread('xxx.xls');
注:表格读取的为矩阵数据,如用第一列或第一行的数据使用[:,1]或[1,:]
读取txt文件数据:
单列数据:B = textread('xxx.txt');
双列数据:[a b] = textread('xxx.txt');
n列数据:[a b c .. n] = textread('xxx.txt');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3. 积分相关
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> %%%% 积分相关 matlab求积分函数工具:
>
> int 用法1: 格式: int(fun,x,a,b) 功能: 计算定积分 用法2: 格式: int(f,x) 功能: 计算不定积分 注:
> 使用int函数之前, 先用syms声明x是符号变量
>
> trapz (利用梯形法) 格式: I=trapz(x,y) 功能: 求取定积分, 适用于被积函数是离散数据 eg:
> ac=@(x)sin(x)./x %用@引入函数句柄 x1=pi/4:pi/50:pi/2; y1=ac(x1);
> s1=trapz(x1,y1)
>
> quad (基于变步长辛普森法) 格式: [I,n]=quad(‘fname’,a,b,Tol,trace) 其中:
> ‘fname是被积函数名 a,b是积分上下限 Tol是精度控制值, 省却时取0.001 Trace:控制是否显示展现积分过程, 取0不展现
> I: 积分值 n: 被积函数调用次数 eg: ac=@(x)sin(x)./x s=quad(ac,pi/4,pi/2)
>
> integral1 格式: q = integral(fun,xmin,xmax) 用法1: 广义积分 创建函数
> f(x)=exp(-x2)(lnx)2。
> **fun = @(x) exp(-x.2).*log(x).2; 计算 x=0 至 x=Inf 的积分。 q = integral(fun,0,Inf) 》 》 q = 1.9475 用法2: 参数化函数 创建带有一个参数 c 的函数
> f(x)=1/(x3-2x-c)。 fun = @(x,c) 1./(x.^3-2x-c); 在 c=5 时, 计算从 x=0 至 x=2
> 的积分。 q = integral(@(x)fun(x,5),0,2) 》 》 q = -0.4605 用法3: 向量化积分 创建向量值函数
> f(x)=[sinx,sin2x,sin3x,sin4x,sin5x] , 并求 x=0 到 x=1 的积分。 指定
> ‘ArrayValued’,true 以便计算数组值或向量值函数的积分。 fun = @(x)sin((1:5)*x); q =
> integral(fun,0,1,‘ArrayValued’,true) %true表示被积函数是数组值函数 》 》 q = 1×5
> 0.4597 0.7081 0.6633 0.4134 0.1433
>
> 高精度Lobatto积分法 格式: z = quadl(Fun,a,b)
>
> 自适应Gauss-Kronrod数值积分 格式: z = quadgk(Fun,a,b) 功能: 适用于高精度和震荡数值积分,
> 以及广义数值积分 积分法矢量化
>
> 自适应simpson数值积分 格式: z = quadv(Fun,a,b) 功能: 向量化积分 eg:
> F=@(x,n)1./((1:n)+x.^2); quadv(@(x)F(x,6),0,1)
>
> dblquad 数值二重积分 格式: I=dblquad(f,a,b,c,d,tol,trace), 功能:
> 求f(x,y)在[a,b]×[c,d]区域上的二重积分 f=@(x,y)exp(-x.2/2).*sin(x.2+y)
> I=dblquad(f,-2,2,-1,1)
>
> integral2 数值二重积分 格式: q = integral2(fun,xmin,xmax,ymin,ymax) 功能: 在平面区域
> xmin ≤ x ≤ xmax 和 ymin(x) ≤ y ≤ ymax(x) 上逼近函数 z = fun(x,y) 的积分。 用法1:
> 将三角形区域与奇异性在边界处集成 eg: 此函数在 x 和 y 为零时未定义。 当奇异性位于积分边界上时, integral2 的性能最佳。
> 创建匿名函数。 fun = @(x,y) 1./( sqrt(x + y) .* (1 + x* + y).^2 ) 对 0≤x≤1 和
> 0≤y≤1-x 限定的三角形区域计算积分。 ymax = @(x) 1 - x; q = integral2(fun,0,1,0,ymax)
> 》》q = 0.2854 用法2: 极坐标二重积分 eg: fun = @(x,y) 1./( sqrt(x + y) . (1 + x +
> y).^2 ); %用x y 表示rcos rsin polarfun = @(theta,r)
> fun(r.*cos(theta),r.*sin(theta)).*r; 为 r 的上限定义一个函数。 rmax = @(theta)
> 1./(sin(theta) + cos(theta)); 对 0≤θ≤π/2 和 0≤r≤rmax 限定的区域计算积分。 q = integral2(polarfun,0,pi/2,0,rmax)
>
> ntegral3 数值三重积分 格式: q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax)
> 用法1: 具有有限范围的三重积分 fun = @(x,y,z) y.*sin(x)+z.*cos(x) q =
> integral3(fun,0,pi,0,1,-1,1) 》 》 q = 2.0000 用法2: 在笛卡尔坐标中对单位球面计算积分 fun
> = @(x,y,z) x.*cos(y) + x.^2.*cos(z) %积分范围 xmin = -1; xmax = 1; ymin = @(x)-sqrt(1 - x.^2); ymax = @(x) sqrt(1 - x.^2); zmin = @(x,y)-sqrt(1
> - x.^2 - y.^2); zmax = @(x,y) sqrt(1 - x.^2 - y.^2); 使用 ‘tiled’ 方法计算定积分。 q =
> integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,‘Method’,‘tiled’)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4. 一些Matlab中希腊字母的使用方法
注:MATLAB中希腊字母输出由TEX代码完成
e.g.
Codes | symbol |
---|---|
\alpha | α |
\beta | β |