在MATLAB上绘制金字塔

时间:2014-10-11 08:29:52

标签: matlab

我想在Matlab上绘制这个数字(没有气泡)! enter image description here

我写了以下代码:

figure
hold on 
axis equal
axis([0 20 0 10])
n = 20
n = n - 1 

for y = 0:10
for x = (y+1):n
    rectangle('Position',[x y 1 1],'curvature',[0 0],'facecolor',(rand(1,3)))
    pause(0.05)
end
end

我在执行此代码时得到以下图:

enter image description here

我需要帮助编写可以绘制正确数字的部分代码。

1 个答案:

答案 0 :(得分:2)

x上的循环从正确的点开始,但在每次迭代时都达到最大值。

只需将循环定义for x = (y+1):n修改为for x = (y+1):n-y即可获得所需的结果:

for y = 0:10
   for x = (y+1):n-y
       rectangle('Position',[x y 1 1],'curvature',[0 0],'facecolor',(rand(1,3)))
       pause(0.05)
   end
end

编辑:根据您的评论,您希望通过控制n来实现这一点,这也是可能的,但您必须在外循环的每次迭代中递减n,如下所示:

for y = 0:10
   for x = (y+1):n
       rectangle('Position',[x y 1 1],'curvature',[0 0],'facecolor',(rand(1,3)))
       pause(0.001)
   end
   n=n-1 ;
end