MATLAB Answers

How to make subplot accept the positions like matrix?

조회 수: 8(최근 30일)
Assume there is 3*3 subplot, subplot(3,3,p) which p gives the location like 1,2,... from left to right and so on. How can I set the p to accept value of the position like the matrix indexing. For example for the 1st subplot, instead of 1, p=(1,1) which shows the xth and yth of the subplot position.
Any idea?

  댓글 수: 0

Sign in to comment.

채택된 답변

Adam 28 Feb 2020
doc ind2sub
This will convert linear indices to n-dimensional subscripts.
[p(1), p(2)] = ind2sub( [3, 3], 2 );

  댓글 수: 1

Steven Lord
Steven Lord 28 Feb 2020
Note that subplot locations are row major, not column major like arrays in MATLAB. No, I don't know why. That decision predates the start of my tenure at MathWorks.
x = 0:0.1:2*pi;
A = zeros(3);
subplot(3, 3, 1) % upper-left corner
plot(x, sin(x))
title('Sine in position 1')
A(1) = 1; % upper-left corner
subplot(3, 3, 3) % upper-right corner
plot(x, cos(x))
title('Cosine in position 3')
A(3) = 3; % lower-left corner
subplot(3, 3, 8) % middle of the bottom row
plot(x, tan(x))
title('Tangent in position 8')
A(8) = 8 % middle of the last column
If you're using release R2019b or later, consider using the tiledlayout and nexttile functions instead of subplot.

Sign in to comment.

추가 답변(0개)


Translated by