1

再会,

在 Matlab 中,我得到了一个非常稀疏的矩阵。现在我想绘制矩阵的“密度”。假设我有一个矩阵 A:

A = [3 0 0
     0 2 0
     0 0 1];

现在情节应该看起来像:

x  
  x  
    x

因此,矩阵 A 具有非零值的每个位置(行、列)都应该有一个点(或其他东西)。

有任何想法吗?

4

3 回答 3

6

spy是你需要的:

% taken from MatLab documentation
B = bucky;
spy(B)
于 2013-06-19T23:27:47.143 回答
1

考虑这样的事情:

subs = zeros(0,2);
for ind = [find(A)']
    [r,c] = ind2sub(size(A), ind);
    subs = [subs; [r,c]];
end

scatter(subs(:,2), subs(:,1));
set(gca,'YDir','Reverse')
xlim([1 size(A,2)])
ylim([1 size(A,1)])

其中,对于矩阵 A:

 0     1     0     1     1
 0     0     0     0     0
 0     1     0     0     0
 0     1     0     1     1
 0     0     1     1     0

为您提供以下散点图:

在此处输入图像描述

于 2013-06-19T23:27:53.987 回答
0

那这个呢 :

A=[3 0 0; 0 2 0; 0 0 1];
imagesc(A)
于 2015-07-21T06:42:51.197 回答