在處理光電效應及普朗克常數的數據時, 需要將對應數據繪製成表格,並畫圖。畫圖較爲簡單,在這就不提啦。表格的話,可以用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
好吧,下面在附件中給出完整代碼。。。
感情這種東西,真的很奇妙。你可能爲它做出一些你本來想不到的事,有時候這些事是積極的,有時候又是消極的。對於我親愛的天使。真的好喜歡她啊......只是,遺憾。現在的我配不上她。