第二次笔记主要聚焦于如何绘制图形(基础)。
matlab技术支持搜索网站
常见函数
1.linspace(x1,x2,n)→生成线性间距向量。
2.logspace(x1,x2,n)→生成对数间距向量。
3.length()→最大数组维度的长度。对于向量,长度是元素数量。
4.ones(m,n)→生成一个全为1的 m×n 矩阵。
zeros(m,n)→生成一个全为0的 m×n 矩阵。
eye(m,n)→生成一个m×n的单位矩阵。
5.rand(m,n)→生成一个由介于 0 和 1 之间的均匀分布的随机数组成的 m×n 矩阵。
6.randn(m,n)→正态分布的随机数。
7.randi([x y],m,n)→生成一个由在 x 和 y 之间的均匀分布的随机整数组成的 m×n 矩阵。
8.randperm(n,k)→返回行向量,其中包含在 1 到 n(包括二者)之间随机选择的 k 个唯一整数。
9.square(t,duty)→生成一个方波信号,t为横轴,duty用于设置占空比。
10.sawtooth(t,xmax)→生成一个三角波信号,t为横轴,xmax用于设置峰值在一个周期内的位置。
11.suptitle()→给subplot加上一个总标题。
基本绘图
1. plot(x,y,‘str’)
以x为横轴,y为纵轴,绘制图形,图形的属性(颜色、线型、标记即plot style)由str进行设置。
一些常用的见下表:
举例:输入代码
clear
x=0:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,'r^-.',x,y2,'b*--')
显示图形如下:
2.legend
在坐标轴上绘制图例。
举例:在原有plot代码基础上,输入代码
legend('sin(x)','cos(x)');
3.title()、xlabel()、ylabel()、zlabel()
设置图表标题,设置坐标轴名称。
举例:同样在原有代码基础上,输入代码
title('TEST')
xlabel('X')
ylabel('Y')
4.text(x,y,txt)、annotation()
text()→向数据点添加文本说明。
annotation()→在图像中添加图形注释(箭头指示、文本框、标记框等)
附:如需添加特殊字符(如上标,积分符号等)则需要用到TeX标记或者LaTeX标记,详情可点击text的超链接,可找到相应的文本符号对照表。
举例:在原有基础上,输入代码
text(5,0,'Hello!')
x0 = [0.3 0.5]; %用归一化的图窗坐标指定文本箭头位置
y0 = [0.6 0.5];
annotation('textarrow',x0,y0,'String','y = cos(x)')
5.subplot()、axes()、axis()、xlim()、ylim()
subplot(m,n,p)→将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。
axes()→选定当前坐标轴
axis([x0 x1 y0 y1])→设置坐标轴范围和纵横比
xlim()→设置或查询 x 坐标轴范围
ylim()→设置或查询 y 坐标轴范围
举例:输入代码
subplot(2,1,1)
x=0:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,'r^-.',x,y2,'b*--')
subplot(2,1,2)
x=0:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,'r^-.',x,y2,'b*--')
axis([0 5 -2 2]); %或者xlim([0 5]);ylim([-2 2]);
6.get()、set()
get(req)→获取对象属性
set(req,Name,Value,)→设置对象属性
附:gcf→当前图像;gca→当前坐标轴
clf→清楚当前图像内容;cla→清楚当前坐标轴内容;clc→清楚命令行的内容;clear→清楚工作区的内容
举例:输入代码
x=linspace(0,10);
y=sin(x);
h=plot(x,y)
得到图像
此时我们再输入
get(h)
我们会得到这个图像的众多属性。
>> get(h)
AlignVertexCenters: 'off'
Annotation: [1×1 matlab.graphics.eventdata.Annotation]
BeingDeleted: 'off'
BusyAction: 'queue'
ButtonDownFcn: ''
Children: [0×0 GraphicsPlaceholder]
Clipping: 'on'
Color: [0 0.4470 0.7410]
CreateFcn: ''
DeleteFcn: ''
DisplayName: ''
HandleVisibility: 'on'
HitTest: 'on'
Interruptible: 'on'
LineJoin: 'round'
LineStyle: '-'
LineWidth: 0.5000
Marker: 'none'
MarkerEdgeColor: 'auto'
MarkerFaceColor: 'none'
MarkerIndices: [1×100 uint64]
MarkerSize: 6
Parent: [1×1 Axes]
PickableParts: 'visible'
Selected: 'off'
SelectionHighlight: 'on'
Tag: ''
Type: 'line'
UIContextMenu: [0×0 GraphicsPlaceholder]
UserData: []
Visible: 'on'
XData: [1×100 double]
XDataMode: 'manual'
XDataSource: ''
YData: [1×100 double]
YDataSource: ''
ZData: [1×0 double]
ZDataSource: ''
此时我们想把图像的线型改成点划线,除了在plot中设置外,我们可以用set()来实现,输入代码
set(h,'LineStyle','.-') %注意区分大小写
得到变更后的图形