web-dev-qa-db-ja.com

2Dバイナリマトリックスを白黒プロットとして表示するにはどうすればよいですか?

白黒プロットとして表示したい2Dバイナリマトリックスがあります。たとえば、次のように4行4列の行列があるとします。

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

これを白黒のマトリックスとしてどのようにプロットできますか?入力バイナリ行列の一部は100x 9のサイズであるため、さまざまなサイズの行列に一般化するソリューションが理想的に必要です。

14
sahamdan

クロスワードタイプのプロットを作成する場合 ここに示すように (グリッド線と白黒の正方形を使用) imagesc 関数を使用できます。 灰色のカラーマップ 、そして 軸のプロパティ を次のように変更します。

mat = [1 1 0 1; 0 0 1 0; 1 1 0 1; 1 0 0 0];  % Your sample matrix
[r, c] = size(mat);                          % Get the matrix size
imagesc((1:c)+0.5, (1:r)+0.5, mat);          % Plot the image
colormap(gray);                              % Use a gray colormap
axis equal                                   % Make axes grid sizes equal
set(gca, 'XTick', 1:(c+1), 'YTick', 1:(r+1), ...  % Change some axes properties
         'XLim', [1 c+1], 'YLim', [1 r+1], ...
         'GridLineStyle', '-', 'XGrid', 'on', 'YGrid', 'on');

そして、これがあなたが得るべき画像です:

enter image description here

17
gnovice

質問が正しかったかどうかはわかりませんが、次のような画像機能を試してみてください。

A = [ 1 1 0; 1 0 1; 1 1 1 ];
colormap([0 0 0; 1 1 1 ]);
image(A .* 255);
4
WebMonster

おそらく、spy関数を試してみてください。