Matlab画图: 有一个矩阵,里面只有 0和 1,想用Matlab把 1用黑点表示,0用空白表示,这个应该怎么做?

恳请大家的帮忙,谢谢了!

X=[1 0 1

    0 1 1

    1 1 0];

[m,n]=size(X);

XZ=[];

YZ=[];

for i=1:m

    for j=1:n

       if X(i,j)==0

         XZ=[XZ,i];

         YZ=[YZ,j];

       end

    end

end

 plot(XZ,YZ,'k.')

 axis([0 m+1 0 n+1])

追问

谢谢帮助!我的问题没说清楚,我是想将这个矩阵中0 和1 区分开画出来,画出平面图,对应位置像黑白棋那样,每个位置用黑白小方块来表示,最终铺满整个平面。
还要麻烦再指点一下!

追答

clc
clear all

X=[1 0 1
0 1 0
1 0 1];
[m,n]=size(X);
for i=1:m
for j=1:n
if X(i,j)==1
x=[i-0.5 i+0.5 i+0.5 i-0.5];%指定x坐标的值
y=[j-0.5 j-0.5 j+0.5 j+0.5];%指定y坐标的值
M=[x x(1)];%首尾相连
N=[y y(1)];%首尾相连
plot(M,N);
fill(M,N,'r')
hold on
else
x=[i-0.5 i+0.5 i+0.5 i-0.5];%指定x坐标的值
y=[j-0.5 j-0.5 j+0.5 j+0.5];%指定y坐标的值
M=[x x(1)];%首尾相连
N=[y y(1)];%首尾相连
plot(M,N);
fill(M,N,'b')
hold on
end
end
end

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-06
矩阵中只有0和1,那么你画出来的点也就只有两个0和1;如果你要是想按照矩阵的位置画的话那么得先给每个对应的点定个坐标再画,直接用循环做就可以了(可以利用循环变量i和j确定坐标)追问

现在是想按照矩阵的位置对应的画出来,要用到Matlab的哪个命令?麻烦说的具体一点,谢谢了!

相似回答