代码改变世界

matlab离散数据绘图

2019-03-22 10:22  不做程序猿  阅读(3216)  评论(0编辑  收藏  举报

1、用set命令添加标签的学生测试成绩图像

五位同学 Adrian、Jim、Joe、Sally、Sue在考试中的分数分别为50、98、75、80、98。将其绘制出来:

若开始使用如下代码:

x = [1:5];   

y = [50,98,75,80,98];

plot(x,y,'o',x,y),set(gca,'XTicklabel',['Adrian'; 'Jim'; 'Joe'; 'Sally'; 'Sue']),set(gca,'XTick',[1:5]),axis([1 5 0 100]),...
xlabel('学生'),ylabel('期末成绩'),title('2005年12月期末考试');

则会提示  串联的矩阵的维度不一致 

 将上述代码更换为

x = [1:5];   

y = [50,98,75,80,98];

plot(x,y,'o',x,y),set(gca,'XTicklabel',['001'; '002'; '003'; '004'; '005']),set(gca,'XTick',[1:5]),axis([1 5 0 100]),...
xlabel('学生'),ylabel('期末成绩'),title('2005年12月期末考试');

显示图像为:

 

 

2、使用二维条形图绘制图像,通过调用bar(x,y)函数:

x = [1:5];   

y = [50,98,75,80,98];

bar(x,y),xlabel('学生'),ylabel('分数'),title('期末测试');

结果显示如下:

 

3、用针状图绘制离散数据

例如绘制出函数 f(t) = e(-βt)sin(t/4) ,β =0.01,并假设它时某根弹簧的响应系数,设 t 在200秒内连续响应 :

t = [0:0.1:200];

f = exp(-0.01*t).*sin(t/4);

plot(t,f),xlabel('时间(秒)'),ylabel('弹簧响应');

绘制出图为:

 

 若要从离散数据产生该图像,假设每隔5秒采样一次,则将时间t = [0:5:200]再作图即可,相应的图像会比较粗糙。

对于上述的离散的数据可以用针头图 stem(x,y) 表示:

t = [0:5:200];

f = exp(-0.01*t).*sin(t/4);

stem(t,f),xlabel('时间(秒)'),ylabel('弹簧响应');  %plot(x,y)使用的线条类型选项也能够用到stem(x,y)上;还可以向stem(x,y)传递 'fill' 参数选项让matlab填充标记。

                       %还可以自由的选择标记的样式,包括方块(s)、菱形(d)、五角星(p)、圆圈(o)、叉号(x)、星号(*)和点号(.)。

                       %例如使用菱形填充标记,绿色线条显示可使用下列代码:

                       %stem(t,f,'--dg','fill'),xlabel('时间(秒)'),ylabel('弹簧响应');

图形显示如下: