关于使用matlab 灰度矩阵问题

 在最近的一篇文章中,一个模拟数据实验结果图一直让我不满意。用英语写吧,估计能很好的解释问题。

 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()函数画。