2

我有一个算法,它使用单个索引填充 2x3 子图数组i=1:6

根据文件,

subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置为子图创建轴。MATLAB® 按行对其子图进行编号,这样第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。

因此,当使用 迭代 2x3 子图数组时i=1:6,将导致以下行主要顺序:

+---+---+---+
| 1 | 2 | 3 |
| 4 | 5 | 6 |
+---+---+---+

如果我想以列优先顺序填充子图,我必须将我的索引 1 2 3 4 5 6 转换为 1 4 2 5 3 6。

我怎样才能做到这一点?

4

1 回答 1

2

您可以创建一个二维索引数组,即3 x 2,将其转置为2 x 3,然后列优先相对于初始矩阵变为行优先。

indices = reshape(1:6, [], 2).';

然后你可以通过循环这些索引来创建你的子图

for k = 1:numel(indices)
    subplot(2, 3, indices(k))
end
于 2017-03-08T19:47:54.083 回答