在处理光电效应及普朗克常数的数据时, 需要将对应数据绘制成表格,并画图。画图较为简单,在这就不提啦。表格的话,可以用excel这也可以。那么matlab该怎么画出那样的表格呢?
在matlab中有现成的表格函数uitable, 但今天我们来介绍另外一种思路来构建属于我们的表格。
原理:matlab中的图像本质上是由点构成的。而表格是由直线段构成的。这样我们只需要在坐标中表示出对应的线段,就可以在matlab中画出想要的表格了。
主要使用函数:plot() 用于画出线段
text() 在表格中的数据可以使用text标注上,看似麻烦的选择,但考虑到表格单元的等长性,其实就是调整一个相对位移的问题。
来我们可以看个样张。。。。
个人感觉尽管还有许多地方可以优化,但优化难度不大,所以也就不是今天的重点了。
下面让我们看一下具体的操作
1)
先画行效果如图
代码如下
for i = 0:0.1:lenght
for j = 0:wide
%每次只画一个点喔,
plot(i,j);
hold on;
end
end
2)有了行,自然要画列喽。
效果如图,代码如下
for i = 0:0.01:wide
for j = 0:lenght
plot(j,i);
hold on;
end
end
接下来就是一些优化了,毕竟,这样的表格是不美观的。
subplot() 常规情况下是用来调整位置信息的,但我们还可以用它来限制表格的大小。
例如当输入subplot(5,1,3).后在画图,那么图片是这样的。
可以适当的调整一下,第一个格子的宽度。使它更美观些,方法太多了,就不多说了,
接下来,我们要做的是向"表格"中插入数据。
例如 X = [-1,-0.5,-0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17];
Y = [-1,-0.5,-0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17];
还是先看下效果运行图
代码如下,至此,一张表格就这样愉快的生成喽。
text(0.5,0.5,'I/A');
text(0.5,1.5,'U/v')
for i = 1:lenght-1
x = num2str(X(i));
y = num2str(Y(i));
text(i+0.5,0.5,x);
text(i+0.5,1.5,y);
end
好吧,下面在附件中给出完整代码。。。
感情这种东西,真的很奇妙。你可能为它做出一些你本来想不到的事,有时候这些事是积极的,有时候又是消极的。对于我亲爱的天使。真的好喜欢她啊......只是,遗憾。现在的我配不上她。