У меня есть 2D двоичная матрица, которую я хочу отобразить как черно-белый график. Например, скажем, у меня есть матрица 4 на 4 следующим образом:
1 1 0 1
0 0 1 0
1 1 0 1
1 0 0 0
Как это может быть напечатано как черно-белая матрица? Некоторые мои входные двоичные матрицы имеют размер 100 на 9, таким образом, мне идеально было бы нужно решение, которое делает вывод к разного размера матрицам.
Если вы хотите построить кроссворд , как показано здесь (с линиями сетки и черными и белыми квадратами), вы можете использовать функцию imagesc
, серый colormap и измените свойства осей следующим образом:
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');
И вот изображение, которое вы должны получить:
Я не уверен если я правильно понял ваш вопрос, но вы можете попробовать функцию изображения, например:
A = [ 1 1 0; 1 0 1; 1 1 1 ];
colormap([0 0 0; 1 1 1 ]);
image(A .* 255);