2010-07-19 18 views
12

Ho una matrice binaria 2D che voglio visualizzare come trama in bianco e nero. Per esempio, diciamo che ho una matrice di 4-by-4 come segue:Come posso visualizzare una matrice binaria 2D come trama in bianco e nero?

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

come può essere tracciati come una matrice in bianco e nero? Alcune delle mie matrici binarie di input sono di dimensioni 100 per 9, quindi avrei idealmente bisogno di una soluzione che generalizza a matrici di dimensioni diverse.

risposta

14

Se si vuole fare un cruciverba-tipo di grafico as shown here (con linee della griglia e in bianco e nero quadrati) è possibile utilizzare la funzione di imagesc, un gray colormap e modificare il axes properties in questo modo:

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'); 

ed ecco l'immagine che si dovrebbe ottenere:

enter image description here

1

Provare la funzione spy per iniziare con forse.

4

io non sono sicuro se ho ottenuto il vostro domanda giusta, ma si può provare la funzione di immagine, in questo modo:

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

grazie mille. questo è stato utile ma non esattamente come ho bisogno, ho bisogno di qualcosa di simile a questo (si prega di trovare l'URL): http://www.mathworks.com/access/helpdesk/help/techdoc/ref/pcolor1.gif – sahamdan

Problemi correlati