MATLAB:如何将矩阵绘制为nxn表?

时间:2016-04-07 04:53:09

标签: matlab matrix plot

我有一个例程,迭代地改变矩阵的结构,我想为该过程设置动画,以便用户可以实际看到结构发生变化。

如果我的矩阵是nxn,我想将矩阵显示为nxn表

e.g。

enter image description here

然后使用'情节'命令我希望有一个包含以下内容的数字:

enter image description here

(不需要网格线) 我的实际矩阵可能是25x25 / 100x100

1 个答案:

答案 0 :(得分:1)

这段简短的代码

n = 25 ;
A = randi(100, n, n) ;

figure ;
xlim([0 n+2]) ;
ylim([0 n+2]) ;
axis off ;
tt = cell(n,n) ;

for i = 1:n
    for j = 1:n
        tt{i,j} = text(j,n-i,sprintf('%d',A(i,j))) ;
    end
end

for k = 1:100
    % Get random coordinates
    i = randi(n) ;
    j = randi(n) ;
    % Get random value
    v = randi(100) ;
    % Remove & update text
    delete(tt{i,j}) ;
    tt{i,j} = text(j,n-i,sprintf('%d',v)) ;
    % Force figure plot
    drawnow() ;
    % Wait a bit
    pause(0.02) ;
end

在网格上打印矩阵,没有线条。然后随机查找坐标并更改其值。 我不确定添加行是否有助于提高清晰度。如果真的需要,你可以简单地使用情节添加它们。

您可以调整sprintf,以便很好地显示您的数据。 如果数字全部相互叠加,只需拖动窗口的一角即可增加图形的大小。