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

Spa*_*cey 3 matlab plot matrix visualize sparse-matrix

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

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

在此输入图像描述

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

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

谢谢!

Dou*_*gal 7

尝试spy; 它就是为了那个目的.

问题是spy使轴相等,并且您的数据是13 x 8198,因此第一个轴与第二个轴相比几乎不可见.daspect可以解决这个问题

>> spy(blah)
>> daspect([400 1 1])
Run Code Online (Sandbox Code Playgroud)


spy没有选项可以通过标志进行不同的绘图.一种选择是编辑源以添加该功能(它在matlab中实现,您可以通过运行获取源edit spy).然而,更简单的方法就是分别监视正面和负面部分:

>> daspect([400 1 1]);
>> hold on;
>> spy(max(blah, 0), 'b');
>> spy(min(blah, 0), 'r');
Run Code Online (Sandbox Code Playgroud)

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