在MATLAB中绘制256个正方形/矩形

时间:2012-05-16 11:53:42

标签: matlab image-processing printing plot matlab-figure

我正在尝试使用MATLAB矩形函数绘制256个小尺寸的正方形。如果我正在绘制10个正方形,那么以下工作正常:

for i=1:2:40

rectangle('Position',[5,3+i,0.3,0.3],...
      'Curvature',[0,0],...
     'LineStyle','-', 'faceColor', 'black')

end

axis off; 

daspect([1,1,1])

enter image description here

但是当我将for循环的最后一个值更改为512(绘制256个方格)时,它打印不正确:

enter image description here

以下是上图中某部分的放大版本: enter image description here

这张图片清楚地显示某些地方有些不对劲,因为正方形的边不完全相等,并且正方形的尺寸越小越好。正方形:任何人都可以帮助我完美地绘制正方形,尺寸不会缩小,? (我对记忆没有任何问题,我可以容忍多个页面向下滚动以覆盖整个方块)

2 个答案:

答案 0 :(得分:5)

这是一部古典Moire effect。您无法在显示器上显示那么多矩形,因为没有足够的像素。 Matlab为您做了一些下采样。因此,你得到另一个原本不存在的频率。

答案 1 :(得分:3)

我尝试了你的代码,即使循环执行512次迭代 - 当你在最终的matlab图中放大时,它也能正常工作。您描述的工件可能是由监视器分辨率或导出到非矢量文件时的低分辨率引起的。

尝试将图像导出为矢量文件(eps或svg),以便在放大时看到一切正常。