2016-04-07 10 views
0

私は行列の構造を繰り返し変更するルーチンを持っています。私はそのプロセスをアニメートしたいので、ユーザーは実際に構造が変化しているのを見ることができます。私の行列がn×nのであればMATLAB:行列をnxnテーブルとしてプロットする方法は?

は、私は、例えばn×nのテーブル

としてマトリックスを表示したいですその後

enter image description here

私が含むFigure持ちたい 'プロット' コマンドを使用して:

enter image description here

(グリッド線不要) 私の実際の行列は25×25/100×100

可能性を

答えて

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 

は、グリッド上に行なしでマトリックスを印刷します。次に、ランダムに座標を見つけ、その値を変更します。 私は、行を追加することでわかりやすくなるかどうか分かりません。本当に必要な場合は、単にplotを使用して追加することができます。

sprintfを調整して、データをうまく表示できるようにすることができます。 数字がすべて上にある場合は、ウィンドウの角をドラッグするだけで図のサイズを大きくすることができます。

+0

私はこれが私が探しているのか分からない。このコードでは、新しい値が古い値の上に書き込まれるため、数値が変わるのが好きです。私が視覚化しようとしているプロセスは、数字の「三角形」が行列の2つの副対角線に沿って「追跡」され、ゼロに置き換えられるものです。視覚的には、下位尾根の斜め下に波紋が降り注ぐようにしたい。あなたはグリッドラインについて正しいです、彼らは不要です。 – Neil

+0

わかりました。私は私の答えを更新しました。かなりうまくいく:-) – leo

関連する問題