Как я могу отобразить 2D двоичную матрицу в виде черно-белого графика? - PullRequest
14 голосов
/ 19 июля 2010

У меня есть двумерная двоичная матрица, которую я хочу отобразить как черно-белый график.Например, предположим, у меня есть матрица 4 на 4, как показано ниже:

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

Как это можно представить в виде черно-белой матрицы?Некоторые из моих входных двоичных матриц имеют размер 100 на 9, поэтому в идеале мне нужно решение, обобщающее матрицы разного размера.

Ответы [ 3 ]

17 голосов
/ 19 июля 2010

Если вы хотите создать график типа кроссворда , как показано здесь (с линиями сетки и черными и белыми квадратами), вы можете использовать функцию imagesc, a серая карта цветов и измените свойства осей следующим образом:

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

4 голосов
/ 19 июля 2010

Я не уверен, правильно ли я понял ваш вопрос, но вы можете попробовать функцию изображения, например:

A = [ 1 1 0; 1 0 1; 1 1 1 ];
colormap([0 0 0; 1 1 1 ]);
image(A .* 255);
1 голос
/ 19 июля 2010

Попробуйте начать с функции spy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...