Matlab:用于控制稀疏矩阵的间谍命令轴标记的轴命令?

时间:2013-10-26 14:18:01

标签: matlab matrix plot sparse-matrix axis-labels

数据有12行,而不是第N行1 ... 12,图表的列应该是6 ... 89,就像数据的第一列一样。然后X坐标是另外两行。关于间谍的文档没有提到关于轴的任何内容,所以试过以下但没有工作

>> spy(C(neg,:))
>> axis([1 31 6 89]); spy(C(neg,:))                  #xmin xmax ymin ymax
>> axis on; axis([1 31 6 89]); spy(C(neg,:))
>> axis on; a=spy(C(neg,:)); axis(a,[1 31 6 89]);
Error using spy
Too many output arguments.

所以

  

如何使用正确标记的轴可视化稀疏数据?

示例

  

数据

6   2   7
11  4   7
26  9   7
36  12  7
44  15  7
55  21  7
60  16  11  7
62  23  7
86  28  7
87  27  7
89  25  11  7
     

此图显示错误的垂直标签0 2 4 ... 12而不是6 7 ... 89

     

enter image description here

2 个答案:

答案 0 :(得分:1)

让我们试试一个完整矩阵的例子

sami = sparse(1000,1000);
spy(1 - sami);
axis([1 31 6 89]);

首先获得左侧图片,然后是右侧图片

enter image description here

你的错误就在这里:命令是还原剂。 您可能会将其与保持命令混淆。

然后,你在命令

中有一个拼写错误
axis(a,[1 31 6 89]);

应该只是

axis([1 31 6 89]);

继续!

答案 1 :(得分:0)

C([10,20,100],:)等表达式的问题在于它会改变您的Y轴,因此原始的10将是1,原始的20将是2而原始的100将是3的y轴。诀窍是不要把事情搞清楚,因为Matlab将重新定义轴,所以创建一个新变量CC,你将不需要的东西重新定义为零,然后正如Masi所提到的那样使用轴 - 在间谍命令之后!

示例

enter image description here