在MATLAB中绘制一系列2D黑白图

时间:2010-02-28 18:37:32

标签: matlab matrix plot

我试图在MATLAB中绘制一系列包含1和0(有效黑白图像)的2D矩阵,这些矩阵以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

是否有绘图命令(而不是网格)允许我将2D数组显示为实体形状(矩阵元素等于1),而不是将这些区域显示为凸起(与网格一样) ?

4 个答案:

答案 0 :(得分:1)

这样做:

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

答案 1 :(得分:0)

调查Matlab函数imagesc()

答案 2 :(得分:0)

函数pcolor是一个选项。您必须注意的一件事是文档中的这条评论:

  

默认shadingfaceted,   用单个颜色为每个单元格着色   颜色。 C的最后一行和一列   在这种情况下不使用。

因此,您可能希望通过向numrowsnumcols添加1来向矩阵添加额外的行和零列。

以下是文档中的一些示例代码:

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

alt text

答案 3 :(得分:0)

SPY也是查看二进制矩阵的好方法。