Matlab基础作图
1.绘制多条线和颜⾊
编写⼀个脚本⽂件(twoLinePlot.m)以在同⼀坐标系下绘制两条线。
分析 :两条以上曲线分别使用plot命令时,应使用hold on /hold off,使用新画板可用命令figure,红色虚线的表示方式为'r--'
F1=figure
t=linspace(0,2*pi,50)
plot(t,sin(t))
hold on %防止画板将旧图刷新
plot(t,cos(t),'r--')%红色虚线
%添加属性
xlabel('Time(s)')
ylabel('Function value')
title('Sin and Cos functions')
legend('Sin','Cos')
%规范坐标轴
xlim([0,2*pi])
ylim([-1.4,1.4])
hold of
绘图如下:
2.⼦图和坐标系模式
制作⼀个具有2x2⽹格的新图形(subplot)。在每个坐标系下显示mit图像,并将颜⾊表设置为
cMap。 将左上⽅图像的坐标轴设置为square,右上⻆设置为tight,左下⻆设置为equal,右下⻆设置为
xy。
分析:load命令能够加载mat文件里的变量,使用subplot可以达到分割子图的目的,绘图使用image绘制矩阵,并通过colormap改变默认色图,set命令可对已经画好的图作出修改
load mitMap %载入mit和cMap
subplot(2,2,1) %左上角子图
image(mit);colormap(cMap)
;axis square; %坐标轴设置为SQUARE格式
title('Square');
set(gca,'ytick',0:100:800); %调整y轴刻度密度
subplot(2,2,2) %右上角子图
image(mit);colormap(cMap);
axis tight;title('Tigth');
set(gca,'ytick',0:100:800);
subplot(2,2,3) %左下角子图
image(mit);colormap(cMap);
axis equal;title('Equal');
set(gca,'ytick',0:200:1000);
subplot(2,2,4); %右下角子图
image(mit);colormap(cMap);
axis xy;title('XY');
set(gca,'ytick',0:100:800);
绘图如下:
3.条形图
制作⼀个包含5个随机值的向量,并使⽤红⾊条形图将它们绘制在条形图上
分析:红色的表示方式为'r'
y = rand([1,5]); % 创建随机向量
bar(y,'r') % 绘制条形图
ylim([0,1]); % 限制Y轴范围
title('Bar Graph of 5 Problem Values'); % 条形图标题
绘图如下:
4.逻辑索引和分段图. 晶体管I-V曲线
假定⼀个晶体管具有阈值电压VT = 1V且K =50μA/ V2。
以V 是⾃变量,⽽V 是参数。 要求针对⼏个栅极电压绘制电流与漏极电压的关系曲线。假设V 在0⾄
5V之间变化,作出V 分别取集合{0、1、2、3、4、5} (V)中各个值时的I-V曲线。
分析:根据VGS的不同,该题应绘制六条曲线,采用逻辑变量应用于函数的方式表示整个函数,可以先设置分函数线性Lin,非线性Sat并通过lin sat逻辑变量为真反应线性和非线性,ID=lin*Lin+sat*Sat
。当VDS=VGS-VT时,既是线性又是非线性,且连续,这里将lin的条件出去相等的部分,才是正确的函数。通过循环计算每一个VGS对应的一组ID值,储存于一个"y"值矩阵,再与向量VDS作图
VT=1;K=50;
Vgs=0:1:5;ID=[];
Sat=@(Vds,VgsI) K*(VgsI-VT)^2/2 %非线性段,使用句柄可快速返回绘图的"y"值
Lin=@(Vds,VgsI) K*(Vds.*(VgsI-VT)-Vds.^2/2);%线性
for i=1:6 %遍历所有VgsI
VgsI=Vgs(i); IDJ=[];
for Vds=0:0.5:5 %对应VgsI下的曲线
lin=(Vds>=0)&&(Vds<(VgsI-VT)); %lin为线性区的条件,为真时即处于线性段
sat=((VgsI-VT)>=0)&&(Vds>=(VgsI-VT));%VgsI<VT时断路 ID=0
IDI=lin*Lin(Vds,VgsI)+sat*Sat(Vds,VgsI); %ID为整个分段函数表达式
IDJ=[IDJ;IDI]; %储存对应Vds的一列ID值
end
ID=[ID IDJ]; %将新的VGS对应的数据拼接在左边
end %外循环结束,ID为6列11行(5-0)/0.5+1
Vds=0:0.5:5;
plot(Vds,ID(:,1),Vds,ID(:,2),Vds,ID(:,3),Vds...
,ID(:,4),Vds,ID(:,5),Vds,ID(:,6)); %根据VGS从小到大的顺序
legend('V_G_S=0V','V_G_S=1V','V_G_S=2V','V_G_S=3V','V_G_S=4V','V_G_S=5V');%设置下标
xlabel('V_D_S(V)'); %设置格式,规范图表
ylabel('I_D_S(μA)');
title('Trainsistor Drain Current');
ylim([0 500])
绘图如下: