在最近的一篇文章中,一個模擬數據實驗結果圖一直讓我不滿意。用英語寫吧,估計能很好的解釋問題。
In the figure, there are in total 4 implementations. Among them, the two implementations are from the one design idea and the other two implementations are from another design idea. Although the datasets selected show the better one of each two implementations, it cannot show which is the best among the 4 implementations.
I tried to find the results from the final figure. But it was really hard since the datasets were not enough. Later, I find one solution is that I run all the datasets and use grey matrix to compare the two implementations.
最后想到的辦法是,設計所有的datasets, 然后跑出兩個實現的數據,比較,得出一個相對值,最后,使用matlab畫矩陣灰度圖。
關於matlab矩陣灰度圖的畫法:
--以下是轉載一:
一維信號的話就直接plot吧
如果是二維矩陣形式的話就直接用imshow()函數,不過要把數據類型先轉換,還要歸一到相應區間,double的話歸一到0.0-1.0(最大值為1.0,最小值為0.0),uint8的話歸一到0-255,類型轉換用uint8()或double()
--以下是轉載二:
matlab中,我們常使用imshow()函數來顯示圖像,而此時的圖像矩陣可能經過了某種運算。在matlab中,為了保證精度,經過了運算的圖像矩陣A其數據類型會從unit8型變成double型。如果直接運行imshow(A),我們會發現顯示的是一個白色的圖像。、
這是因為imshow()顯示圖像時對double型是認為在0~1范圍內,即大於1時都是顯示為白色,而imshow顯示uint8型時是0~255范圍。而經過運算的范圍在0-255之間的double型數據就被不正常得顯示為白色圖像了。
那么如何解決這個問題呢?通過搜索,找到兩個解決方法:
imshow(I/256); -----------將圖像矩陣轉化到0-1之間
imshow(I,[]); -----------自動調整數據的范圍以便於顯示 (不明白原理!)
從實驗結果看兩種方法都解決了問題,但是從顯示的圖像看,第二種方法顯示的圖像明暗黑白對比的強烈些!不知什么原理!
總結如下:
如果數據是二維整數,當兩個實現不能通過幾個代表性的數據說明問題的時候,可以嘗試將所有的數據都運行出來,然后相互比較,最后用matlab 矩陣灰度圖表示。矩陣灰度圖的X軸和Y軸,就是二維數據。使用imshow()畫矩陣。
如果數據是一維整數,類同,只不過使用plot()函數畫。