Drawing a pyramid in MATLAB

I want to draw this figure in Matlab (no bubbles)!

I wrote the following code:

``````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
```

```

I get the following code for executing this code:

I need help writing a piece of code where the correct number can be drawn.

+3

source to share

Your loop `x`

does not start at the right point, but goes up to the maximum at each iteration.

Just change the definition of the loop `for x = (y+1):n`

to `for x = (y+1):n-y`

and you get the desired result:

``````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
```

```

edit: as per your comment you wanted to achieve this by manipulating `n`

, this is also possible, but you have to decrease `n`

on each iteration of the outer loop, e.g .:

``````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
```

```
+2

source

All Articles