【问题标题】:Plot the density of a matrix绘制矩阵的密度
【发布时间】:2015-07-21 14:42:51
【问题描述】:

早安,

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

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

现在情节应该是这样的:

x  
  x  
    x

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

有什么想法吗?

【问题讨论】:

  • 到目前为止你尝试过什么?您能否提供一个代码 sn-p 供我们查看?如果你表现出你也付出了一些努力,人们最有可能提供帮助。

标签: matlab


【解决方案1】:

spy 是你需要的:

% taken from MatLab documentation
B = bucky;
spy(B)

【讨论】:

    【解决方案2】:

    考虑这样的事情:

    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
    

    为您提供以下散点图:

    【讨论】:

      【解决方案3】:

      这个呢:

      A=[3 0 0; 0 2 0; 0 0 1];
      imagesc(A)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-25
        • 1970-01-01
        • 2020-03-20
        • 2017-09-16
        • 2019-09-19
        • 2019-05-09
        • 2016-01-31
        相关资源
        最近更新 更多