再会,
在 Matlab 中,我得到了一个非常稀疏的矩阵。现在我想绘制矩阵的“密度”。假设我有一个矩阵 A:
A = [3 0 0
0 2 0
0 0 1];
现在情节应该看起来像:
x
x
x
因此,矩阵 A 具有非零值的每个位置(行、列)都应该有一个点(或其他东西)。
有任何想法吗?
再会,
在 Matlab 中,我得到了一个非常稀疏的矩阵。现在我想绘制矩阵的“密度”。假设我有一个矩阵 A:
A = [3 0 0
0 2 0
0 0 1];
现在情节应该看起来像:
x
x
x
因此,矩阵 A 具有非零值的每个位置(行、列)都应该有一个点(或其他东西)。
有任何想法吗?
spy
是你需要的:
% taken from MatLab documentation
B = bucky;
spy(B)
考虑这样的事情:
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
为您提供以下散点图:
那这个呢 :
A=[3 0 0; 0 2 0; 0 0 1];
imagesc(A)