Построение серии 2D черно-белых графиков в MATLAB - PullRequest
3 голосов
/ 28 февраля 2010

Я пытаюсь построить серию двумерных матриц, содержащих единицы и нули (фактически черно-белые изображения) в MATLAB, которые упорядочены в 3D.

Код, который у меня есть на данный момент:

function PlotthreeD()

 numrows = 100;
 numcols = 100;

 Plot1 = zeros(numcols);
 Plot1(20:50,20:50) = 1;

 Plot2 = zeros(numcols);
 Plot1(20:70,20:90) = 1;

 Plot3 = zeros(numcols);
 Plot3(20:50,20:50) = 1;

         B = cat(3, Plot1, Plot2, Plot3);

 figure; 
 offset = 100;
 hold on; 

 for i=1:3; 
     mesh(B(:,:,i)+offset*(i));
 end

end

Есть ли команда рисования (а не сетка), которая позволит мне показывать двумерные массивы в виде сплошных фигур (где матричные элементы равны 1), вместо того, чтобы эти области отображались как поднятые (как они с сеткой)

Ответы [ 4 ]

1 голос
/ 28 февраля 2010

Это сделает это:

numrows = 100;
numcols = 100;
close all;

Plot1 = zeros(numcols);
Plot1(20:50,20:50) = 1;

Plot2 = zeros(numcols);
Plot2(20:70,20:90) = 1;

Plot3 = zeros(numcols);
Plot3(20:50,20:50) = 1;

B = cat(3, Plot1, Plot2, Plot3);
B(B==0)=NaN;

figure;
offset = 100;
hold on;

for i=1:3;
    surf(B(:,:,i)+offset*(i)); 
end
0 голосов
/ 01 марта 2010

SPY также является хорошим способом просмотра двоичных матриц.

0 голосов
/ 28 февраля 2010

Функция pcolor является одним из вариантов. Единственное, о чем вам следует помнить, это комментарий в документации:

По умолчанию shading равно faceted, который окрашивает каждую ячейку одним цвет. Последняя строка и столбец C в этом случае не используются.

Так что вы можете добавить дополнительную строку и столбец нулей к вашей матрице, добавив 1 к numrows и numcols.

Вот пример кода из документации:

pcolor(hadamard(20))
colormap(gray(2))
axis ij
axis square

alt text

0 голосов
/ 28 февраля 2010

Исследование функции Matlab imagesc ()

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