我有一个大小为13 x 8198的稀疏矩阵,称之为‘blah’,你可以在这里找到它。但是,该矩阵大部分元素都为0。当我使用imagesc(blah)命令时,得到了以下图像:
。很明显,无法清晰地看到非零元素。我已经尝试调整颜色比例,但没有效果。不过,我想知道是否有更好的方法在MATLAB中可视化这个矩阵?我正在设计一个算法,并希望能够查看矩阵中的某些内容。谢谢!
![enter image description here](https://istack.dev59.com/sg5KJ.webp)
spy
,它专门用于此目的。问题在于spy
使轴相等,而您的数据为13 x 8198,因此第一个轴与第二个轴相比几乎不可见。daspect
可以解决这个问题。>> spy(blah)
>> daspect([400 1 1])
spy
没有按符号不同绘制的选项。一种选择是编辑源代码以添加该功能(它在 matlab 中实现,您可以通过运行 edit spy
来获取源代码)。但更简单的 hack 方法是分别对正负部分进行监视:
>> daspect([400 1 1]);
>> hold on;
>> spy(max(blah, 0), 'b');
>> spy(min(blah, 0), 'r');
这会产生一个不幸的副作用,使得正负数值接近的地方看起来被第二个绘制的占据,例如在您矩阵的顶行中负值占据了主导地位。我不确定除了调整标记大小之外还能做什么,您当然可以按两种顺序进行比较。