如何在MATLAB中可视化稀疏矩阵?

时间:2013-01-29 03:12:21

标签: matlab matrix plot sparse-matrix visualize

所以我有这个矩阵here,它的大小是13 x 8198.(我称它为'blah')。

这是一个稀疏矩阵,其中大部分条目为0.当我执行imagesc(blah)时,我得到以下图像:

enter image description here

显然,这是毫无价值的,因为我无法清楚地看到非零元素。我试过玩颜色缩放,但无济于事。

无论如何,我想知道是否有更好的方法能够以某种方式在MATLAB中可视化这个矩阵?我正在设计一个算法,并希望能够在矩阵中看到某些东西。

谢谢!

1 个答案:

答案 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');

这具有令人遗憾的副作用,即使正面和负面靠近在一起的位置看起来由第二个绘制,这里是负面(例如在矩阵的顶行中)。除了可能摆弄标记尺寸之外,我不知道该怎么做。你当然可以在两个订单中进行比较。