我想在Matlab上绘制这个数字(没有气泡)!
我写了以下代码:
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
我在执行此代码时得到以下图:
我需要帮助编写可以绘制正确数字的部分代码。
答案 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