Matlab常用操作、绘图等小知识
- 格式:docx
- 大小:119.11 KB
- 文档页数:7
Mat1ab技术工程图形绘制引言Mat1ab是一种极为强大的技术工程软件,提供了丰富的绘图功能。
在各个领域的科学研究和工程实践中,MatIab的图形绘制功能起到了至关重要的作用。
本文将介绍Mat1ab的技术工程图形绘制相关知识,并通过实例展示其应用。
一、MatIab绘图基础MatIab提供了多种绘图函数和工具箱,可以绘制各种类型的图形,如二维直线图、散点图、曲线图、柱状图、等高线图等。
其中最常用的绘图函数是p1ot函数。
p1ot函数可以用于绘制二维直线图和曲线图。
通过指定横坐标和纵坐标的数值,可以绘制出对应的线条。
此外,还可以通过设置线条的颜色、线型和线宽等参数,使得绘图更具美感和可读性。
二、技术工程绘图实例以下是一个工程实例,展示了如何使用MatIab进行技术工程图形绘制。
假设我们要绘制一条压力-体积图曲线,用于描述气体在不同压力下体积的变化关系。
首先,我们需要定义一组压力和体积的数据。
假设我们有以下数据:压力(P):[12345678910]体积(V):[105321.51.21.11.051.011]我们可以使用p1ot函数将这组数据绘制成一条曲线图:''v mat1abP=[12345678910];V=[105321.51.21.11.051.011];p1ot(P,V,T,,'1ineW汕h',2);在这段代码中,P表示横坐标,V表示纵坐标,K表示线条颜色为红色,1ineWidh表示线宽为2个像素。
运行这段代码,我们就可以得到一条表示压力一体积关系的曲线。
三、MatIab图形美化除了基本的绘图功能外,MatIab还提供了一些图形美化技巧,帮助我们生成更具视觉效果的技术工程图形。
首先,我们可以设置图形的标题、坐标轴标签和图例,使得图形的含义更加清晰明了:'''mat1abHt1eC压力.体积关系图,);X1abeIc压力(P),);y1abe1C体积(V),);IegendC压力•体积曲线’);其次,我们可以设置坐标轴的刻度范围和标记,使得图形的比例更加合理:''v mat1abx1im([012]);y1im([012]);xticks(0:2:12);yticks(0:2:12);最后,我们还可以添加网格线和背景颜色,提升图形的可读性:''v mat1abgridon;set(gca,,Co1or1,[0.90.90.9]);、、、通过这些简单的技巧,我们可以将简单的线条图美化为一个专业的技术工程图形。
一、1、数学建模基础知识及常用命令一、界面窗口介绍:1 命令窗口(command window),窗口中输入命令,回车实现计算或绘图功能。
2 工作空间窗口(work space)运行matlab命令时所产生的变量都被加入到工作空间,该窗口可以显示命令窗口中已输入的变量的名称,数值等。
3 命令历史窗口(command history)显示所有执行过的命令,选定某个命令时可以双击或按F9执行。
4 当前目录窗口(Current folder)显示当下目录下的文件信息。
二、常用运算1、算术运算符加+ 减- 乘* 左除/ 右除\ 乘方^注意:在普通的数值运算中,左除为我们常用的除法形式,左除右除结果比较像逆运算,如1/2 和1\2结果互为倒数,但在矩阵的运算中,结果完全不一样,类似于左乘和右乘结果一般会不一样。
运算的优先级:从左到右,幂运算最高优先级,乘除法具有相同次优先级,加减法具有相同的低优先级,括号可以用来改变优先次序。
大家可以进行几个普通计算(练习10分钟)1、325+47⨯÷2、4 59+986-2.7+55-1033.5+20⨯()29()2、数据显示格式默认情况下,matlab显示小数点后4位小数,可以利用format命令改变显示格式(一般写在要改变的数值的命令前):format short 小数点后4位format long 小数点后15位format bank 小数点后2位(以上为三个常用的)format rat 最接近的有理数如以 为例:>> pi= 3.1416>> format long>> pi>> format rat>> pians =355/113>> format bank>> pians =3.14>> format short>> pians =3.1416三、matlab变量1、变量赋值形式变量=表达式(数值)或表达式(数值)其中,“=”为赋值符号,将右边表达式的值赋给左边变量(上面左的含义),当不指定输出变量时,matlab将表达式的值赋给临时变量ans(右的含义)。
MATLAB操作命令大全1.基本操作:- clear: 清除工作区中的所有变量。
- clc: 清除命令窗口的内容。
- close all: 关闭所有图形窗口。
- help function-name: 显示与函数相关的帮助文档。
- who: 显示当前工作区中的所有变量。
- save file-name: 保存当前工作区中的所有变量到指定的文件。
- load file-name: 从文件中加载变量到当前工作区。
2.变量操作:-=:赋值操作符,将右边的值赋给左边的变量。
-+:加法操作符。
--:减法操作符。
-*:乘法操作符。
-/:除法操作符。
-^:幂运算操作符。
- sqrt(x): 计算 x 的平方根。
- abs(x): 计算 x 的绝对值。
- max(x): 返回 x 中的最大值。
- min(x): 返回 x 中的最小值。
- sum(x): 计算 x 中所有元素的和。
3.数组操作:- zeros(m, n): 创建一个 m 行 n 列的全零数组。
- ones(m, n): 创建一个 m 行 n 列的全一数组。
- eye(n): 创建一个 n 行 n 列的单位矩阵。
- size(x): 返回 x 的维度。
- length(x): 返回 x 的长度。
- reshape(x, m, n): 将 x 重新排列为一个 m 行 n 列矩阵。
- transpose(x): 将 x 的行和列互换。
4.控制流程:- if-else: 条件语句,根据条件执行不同的代码块。
- for loop: 循环语句,执行指定次数的代码块。
- while loop: 循环语句,根据条件反复执行代码块。
- break: 在循环中使用,用来跳出当前循环。
- continue: 在循环中使用,用来跳过当前循环的剩余部分。
5.统计分析:- mean(x): 计算 x 的平均值。
- median(x): 计算 x 的中位数。
- std(x): 计算 x 的标准差。
一、二维数据曲线图1、MATLAB 最常用的画二维图形的命令是plot, plor 函数的基本调用格式为:plot(x.y)其 中x 和y 为长度相同的向豈,分别用于存储x 坐标和y 坐标数据。
例 1:在[0,2 7T ]画 Sill(.v) 0生成的图形如下图1所示:图1说明:(1) plot 函数的输入参数是矩阵形式时A 、 当x 是向量,y 是有一维与x 同维的矩阵时,则绘制出多根不同颜色的曲线。
曲线 条数等于y 矩阵的另一维数,x 被作为这些曲线共同的横坐标。
B 、 当x,y 是同维矩阵时.则以x,y 对应列元素为横、纵坐标分别绘制曲线,曲线条数 等于矩阵的列数。
C 、对只包含一个输入参数的plot 函数,当输入参数是实矩阵时,则按列绘制每列元素 值相对其卜.标的曲线,曲线条数等于输入参数矩阵的列数:当输入参数是复数矩阵时,则按 列分别以元素实部和虚部为横、纵坐标绘制多条曲线。
(2) 含多个输入参数的plot 函数 调用格式为:plot(xl,yl.x2,y2,"--.xn.yn)A, 当输入参数都为向量时,xl 和yl, x2和y2, xn 和yn 分别组成一组向量对,每一 组向量对的长度可以不同。
每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制岀 多条曲线。
B.当输入参数有矩阵形式时,配对的x_y 按对应列兀素为横、纵坐标分别绘制曲线,曲线 条数等于矩阵的列数。
例2:如卜所示的程序:x 1 =liuspace(0,2 *pi,l 00);x2=luispace(0.3 *pi,l 00);x3=linspace(0.4*pi,100);yl=sin(xl); y2=l+sin(x2);y3=2+sin(x3);x=[xl;x2;x3]';0.80.60.40.2-0.2-0.4-0.6-0.8y=[yl;y2;y3「plot(x,y,xl,yl-l) 其图形如图2所示:图2(3)plot函数最简单的调用格式是只包含一个输入参数:plot(x),在这种情况卜,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一•条连续曲线,这实际上是绘制折线图。
强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一.二维绘图二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
一.绘制二维曲线的基本函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基本用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 , 2pi]区间,绘制曲线程序如下:在命令窗口中输入以下命令>> x=0:pi/100:2*pi;>> y=2*exp(-0.5*x).*sin(2*pi*x);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例52 绘制曲线这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:>> t=-pi:pi/100:pi;>> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
MATLAB命令窗口换行:同时按住shift+enter键。
MATLAB绘图相关:1.曲线颜色、线型及标记点类型(1)、各种颜色属性选项及选项意义(以下为简单颜色可直接使用,其它颜色可通过[RGB]矩阵设置)'r' 红色'm' 品红'g' 绿色'c' 青色(亮蓝色)'b' 蓝色'w' 白色'y' 黄色'k' 黑色(2)、各种线型属性选项及选项意义'-' 实线'--' 虚线':' 点线'-.' 点划线(3)、各种标记点属性选项及选项意义'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点'o' 用圆圈绘制各数据点'x' 用'x'号绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond用菱形绘制各数据点'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的'+'号绘制曲线,通常将表示颜色的字符放在前面。
plot(x,z,'r>-','MarkerFaceColor','g') 用实心的三角形会输据点注意:1)以上表示属性的符号必须放在同一个字符串中;在画图命令前加上这一句:可使绘图窗口坐标轴周围背景由默认的灰色变为白色,figure1 = figure('Color',[1 1 1]);2.设置曲线线宽、标记点大小,标记点边框颜色和标记点填充颜色等。
MATLAB基本的使用方法
1.变量定义和赋值
在MATLAB中,可以使用等号(=)将数值或表达式赋值给变量。
例如,定义一个变量x,并给它赋值为2:
```matlab
x=2;
```
2.矩阵运算
```matlab
A=[12;34];
B=[56;78];
C=A+B;
```
此时,C的值为:
```
C=
68
1012
```
3.流程控制
```matlab
sum = 0;
for i = 1:10
sum = sum + i;
end
```
此时,sum的值为55
4.函数调用
```matlab
x = 0:0.1:pi;
y = sin(x);
```
这样,y的值就是x在0到π之间等间隔取值时的正弦值。
5.图形绘制
```matlab
x = 0:0.1:2*pi;
y = sin(x);
plot(x, y);
```
这样,就可以显示出sin(x)的曲线图。
以上只是MATLAB的一些基本使用方法,MATLAB还有很多高级功能和工具箱可以用于更复杂的计算和分析任务。
有了这些基本的使用方法,你可以开始使用MATLAB进行数学建模、数据分析和科学计算了。
Matlab 小知识1、翻转fliplr(左右)、flipud(上下)fftshift()上下左右fftshift(,1)对行(row)同时操作,引起列的变化(不是简单的上下) 类似fpliudfftshift(,2)对列(column)同时操作,引起行的变化(不是简单的左右) 类似fplilreg:a=[1 2 3;4 5 6; 7,8 9];fliplr=321654987flipud=789456123fftshift=978312645fftshift(a,1)=789123456fftshift(a,2)=3126459782、data:Naz*Nrg,行为方位向,列为距离向fft(,[],1)同时对一列进行fft,在SAR数据处理中为方位向FFT,变换到距离时域,方位频域(距离-多普勒域)== fft()fft(,[],2)同时对一行进行fft,在SAR数据处理中为距离向FFT,变换到距离频域,方位时域。
== fft(x.’).’fft(,[],1) + fft(,[],2) = fft2()3、conj(共轭) conv(卷积)4、imagesc,colormap(gray)5、转置:“’” 对于复数为共轭转置,若要只转置不取共轭,则应该是“.’”对于实数,“’”即可实现转置。
6、对于有复数j的程序,在循环中切忌再次使用j作为循环变量,同理,不可再次定义变量j进行其他运算。
7、算法优化:a) sinc(1:100)比单独计算sinc(1)…sinc(100)快N倍;b) 如果遇到a^2*b^2,则可以先计算(a*b)再对乘积求平方;8、eps 计算机最小正数,在pc机上,它等于2e-52。
9、保存的指令格式(1)save 工作间中的所有变量保存在磁盘上名为matlab.mat 的文件中。
(2)save [文件名] [变量名] 将指定的变量保存在指定文件中,如:save temp x y z 把x,y,z 这三个变量保存在文件temp.mat 中。
在下次加载MATLAB 时可以利用load 指令将保存在文件中的变量恢复到工作间中其格式有:(1)load 将保存在matlab.mat 中的变量装入到MATLAB 工作间中。
(2)load [文件名] [变量名] 从指定的文件中将指定的变量装入。
save e:\mydir\data ARload e:\mydir\data AR10、reshape(变量,行,列)11、取整函数:fix朝零方向取整ceil 朝正无穷大方向取整floor朝负无穷大方向取整round 四舍五入到整数12、rand产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值。
rand产生零均值、单位方差的正态分布随机数。
13、[z,i]=max(a),a为向量;则z为最大值,i为第一个最大值的位置14、ROIPOLY 学习用于点目标分析,编写点目标分析函数15、figure(i):图像显示为figure i;figure(‘name’,’****’):显示为名为’****’的图像,即给图像加名字;16、strcat:strcat('a','b') = ab;cat(DIM,a,b):DIM = 1,b接在a的下面,列连接行增加;DIM = 2,b接在a的后面,行连接列增加;17、图像输出imwrite(A,’F:/photo.jpg’,jpg); 其中,A为矩阵saveas(gcf, ’F:/photo.jpg’,jpg);其中,gcf获取当前图像18、不显示坐标轴:axis off图像充满绘图区:set(gca,'looseInset',[0 0 0 0]);set(gca,'LooseInset',get(gca,'TightInset'));set(gca,'units','normal','pos',[0 0 11],'PlotBoxAspectRatioMode','auto','DataAspectRatioMode','auto');% 保存图像,不带坐标轴plot(rand(100,1))axis offsaveas(gcf,'curve1.bmp')19、matlab调用VS生成的exe[exe位置、输入文件、输出位置]comd =['F:\IECAS\SIFT\SIFT_registration\x64\Debug\SIFT_registration.exeF:\IECAS']system(comd)20、squeeze:除去size为1的维度,如果无为1的维度,则不发生改变。
如:size(A)=[4,1,3]; B = squeeze(A);则size(B)=[4,3];size(A)=[4,2,3]; B = squeeze(A);则size(B)=[4,2,3];21、sub2ind:该函数用于把矩阵中的元素全部下标标识转换为该元素在矩阵中对应的单下标标识。
ind2sub:该函数用于把矩阵中的元素单下标标识转换为该元素在矩阵中对应的全部下标标识。
如:A=[1,2,3;4,5,6;7,8,9];f = sub2ind(size(A),2,3); f = 8;将第二行第三列的数(6),从第一列顺次数过去(6在第八个数上(与矩阵A的值无关));[i,j]=ind2sub(size(A),8); i=2,j=3;22、linspacemeshgrad23、矩阵乘法运算:matlab中分为“乘积”与“点乘”,而在实际公式中并无点乘,只有乘积一种运算;点乘与叉乘是针对向量的运算:a b •点乘:向量内积,得到的结果为数值,T T a b a b a b •=*=a b ⨯叉乘:向量外积,得到的结果为向量,与a 、b 垂直并构成右手坐标系(a b 垂直时)24、在matlab 的title 中加入变量a = 60;b=[num2str(a),'hao']; figure; plot(rand(10,1)); title(b)得到的图像title 为60hao ;即图像名字会随变量a 的改变而变化。
绘图一、Matlab绘图中用到的直线属性包括:(1)LineStyle:线形(2)LineWidth:线宽(3)Color:颜色(4)MarkerType:标记点的形状(5)MarkerSize:标记点的大小(6)MarkerFaceColor:标记点内部的填充颜色(7)MarkerEdgeColor:标记点边缘的颜色1、线形23二、描绘不同的直线当我们需要对不同类别的数据点进行连线的时候,可以设置以下属性来区分不同类别的点和相应的直线:(1)LineStyle:线形(2)MarkerSymbol:点形(3)Color:颜色例如:plot(x,y,'-.or','MarkerFaceColor','g')其中线形为点横线,数据点形状为圆圈,线条和数据点边缘的颜色都是红色,数据点的填充颜色为绿色。
三、描绘数据点的分布有时候我们希望画出数据点的分布情况,不需要画出这些点之间的连线,则可以按以下方式实现:plot(x,y,'d')即只定义数据点的点形。
最后给出一个例子说明怎样运用以上属性来画图:plot(t,sin(2*t),'-mo', 'LineWidth',2, 'MarkerEdgeColor','k', 'MarkerFaceColor',…[.49 1 .63], 'MarkerSize',12)字体figure_FontSize=12;set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');set(findobj('FontSize',12),'FontSize',figure_FontSize);%这4句是将字体大小改为8号字,在小图里很清晰%set(gcf,'Position',[100 100 260 220]);%这句是设置绘图的大小,不需要到word里再调整大小。
我给的参数,图的大小是7cm%set(gca,'Position',[.13 .17 .80 .74]);%这句是设置xy轴在图片中占的比例,可能需要自己微调。
%set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);%这句是将线宽改为2set(gca, 'Fontname', 'Times newman', 'Fontsize', 12);%设置图片的字体类型和字号大小的。
Data cursorset(findall(gcf,'ViewStyle','datatip'),'fontsize',15)更改已画出Figure上的字体h = gca; 获取当前绘图坐标的指针set(h,'FontSize',18);最优化问题最优化工具:optimtool优化函数:fmincon—寻找约束非线性多元函数的最小值fminimax—解决最小最大约束问题fminunc—寻找无约束多元函数的最小值fsolve—解决非线性方程组fzero—寻找一元连续函数的根fsqcurvefit—解决非线性曲线拟合问题在最小二乘意义下fsqlin—解决约束线性最小二次问题。