0

The data has 12 rows and, instead of the N-th row 1...12, the plot should have a column going from 6...89 like the first column of the data. Then the X-coordinate is for the other two rows. The docs about spy mentions nothing about the axis so tried the following but not working

>> 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.

so

How to visualise the sparse data with rightly-labelled axis?

Example

Data

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

This plot shows the vertical labels wrongly 0 2 4 ... 12 instead of 6 7 ... 89

enter image description here

4

2 回答 2

1

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

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

你先得到左边的图片,然后是右边的

在此处输入图像描述

你的错误在这里:命令是多余的。您可能会将其与命令hold on混淆。

然后,你在命令中有一个错字

axis(a,[1 31 6 89]);

这应该只是

axis([1 31 6 89]);

继续!

于 2013-11-09T20:14:52.550 回答
0

表达式的问题C([10,20,100],:)是它会改变你的 Y 轴,所以你原来的 10 将是 1,原来的 20 将是​​ 2,而原来的 100 将是 3 在 y 轴上。诀窍是不要把东西拿出来,因为 Matlab 会重新定义轴,所以创建一个新变量CC,在其中将不需要的东西重新定义为零,然后正如 Masi 提到的那样,在 spy 命令之后使用轴!

例子

在此处输入图像描述

于 2013-11-09T20:44:11.633 回答