所以我在这里有这个矩阵,它的大小为 13 x 8198。(我称它为“blah”)。
这是一个稀疏矩阵,因为它的大部分条目都是 0。当我执行 imagesc(blah) 时,我得到以下图像:
显然这是毫无价值的,因为我无法清楚地看到非零元素。我尝试过使用颜色缩放,但无济于事。
无论如何,我想知道是否有更好的方法能够以某种方式在 MATLAB 中可视化这个矩阵?我正在设计一种算法,并希望能够看到某些东西 int teh 矩阵。
谢谢!
试试spy
;它正是为此而设计的。
问题是spy
使轴相等,并且您的数据是 13 x 8198,因此与第二个轴相比,第一个轴几乎不可见。daspect
可以解决这个问题。
>> spy(blah)
>> daspect([400 1 1])
spy
没有选项可以通过符号进行不同的绘图。一种选择是编辑源代码以添加该功能(它在 matlab 中实现,您可以通过运行来获取源代码edit spy
)。不过,更简单的破解方法是分别监视正面和负面部分:
>> daspect([400 1 1]);
>> hold on;
>> spy(max(blah, 0), 'b');
>> spy(min(blah, 0), 'r');
这有一个不幸的副作用,使正负靠近的地方出现由第二个绘制的地方主导,这里是负数(例如,在矩阵的顶行中)。除了摆弄标记大小之外,我不确定该怎么做。您当然可以按顺序进行并进行比较。