所以我有这个矩阵here,它的大小是13 x 8198.(我称它为'blah')。
这是一个稀疏矩阵,其中大部分条目为0.当我执行imagesc(blah)时,我得到以下图像:
显然,这是毫无价值的,因为我无法清楚地看到非零元素。我试过玩颜色缩放,但无济于事。
无论如何,我想知道是否有更好的方法能够以某种方式在MATLAB中可视化这个矩阵?我正在设计一个算法,并希望能够在矩阵中看到某些东西。
谢谢!
答案 0 :(得分:7)
试试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');
这具有令人遗憾的副作用,即使正面和负面靠近在一起的位置看起来由第二个绘制,这里是负面(例如在矩阵的顶行中)。除了可能摆弄标记尺寸之外,我不知道该怎么做。你当然可以在两个订单中进行比较。