# How to make subplot accept the positions like matrix?

19 Ansichten (letzte 30 Tage)
Zeynab Mousavikhamene am 28 Feb. 2020
Bearbeitet: gwoo am 29 Jul. 2021
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 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

doc ind2sub
This will convert linear indices to n-dimensional subscripts.
e.g.
[p(1), p(2)] = ind2sub( [3, 3], 2 );
##### 2 KommentareKeine anzeigenKeine ausblenden
Steven Lord am 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.
gwoo am 28 Jul. 2021
Bearbeitet: gwoo am 29 Jul. 2021
tiledlayout is still, infuriatingly, row-major.
Update: I looked deeper and there is a tiledlayout property that lets you chooose row or column major. "TileIndexing" so.. yea. i guess it is the solution.

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Subplots finden Sie in Help Center und File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by