# How to plot a tiled layout using a loop?

조회 수: 80(최근 30일)
Wolfgang McCormack 2021년 3월 12일
댓글: Wolfgang McCormack 2021년 3월 13일
Hi guys, I have bunch of excel files that almost everything in them is similar. All I want is creating a loop instead of coding 10 figures, that some data is loaded from row (I can get this part done), then using a tiled layout or subplot to click run and MATLAB loops and adds figures to the next tile but I cant get this going:
for r = 1:10
tiledlayout(2,5)
scatter(X(the plot works))
nexttile
end

댓글을 달려면 로그인하십시오.

### 채택된 답변

ANKUR KUMAR 2021년 3월 12일
편집: ANKUR KUMAR 2021년 3월 12일
for r = 1:10
subplot(2,5,r)
plot(randi(10,5,5),'ro')
end
If you have two loops, you can use as follows:
for r = 1:2
for k=1:5
subplot(2,5,(r-1)*5+k) % 5 is used because the maximum iteration of k is 5
plot(randi(10,5,5),'ro')
end
end
##### 댓글 수: 11표시숨기기 이전 댓글 수: 10
ANKUR KUMAR 2021년 3월 12일
We need to use cat command to concatenate multiple separate matrices into a single matrix. The first argument in the cat command is the dimension along which you wish to concatenate.

댓글을 달려면 로그인하십시오.

### 추가 답변(2개)

편집: Adam Danz 2021년 3월 12일
> should a nexttile be in the loop?
Yes, but the tiled layout should be defined before the loop.
The first two examples listed in this answer show how to use tiledlayout in a loop with a global legend.
Here's another example.
fig = figure();
tlo = tiledlayout(2,3);
h = gobjects(1,6);
colors = lines(6);
for i = 1:6
ax = nexttile(tlo);
h(i) = plot(ax, 1:10, rand(1,10), 'Color', colors(i,:), 'DisplayName', sprintf('line %d',i));
end
lg = legend(h);
lg.Layout.Tile = 'East'; % <-- place legend east of tiles ##### 댓글 수: 1표시숨기기 없음
Wolfgang McCormack 2021년 3월 13일
@Adam Danz thank you so much Adam, you are a savior for me on this forum! I don't know what I had to do without you! thx

댓글을 달려면 로그인하십시오.

Wolfgang McCormack 2021년 3월 12일