首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MATLAB中,对于一个2D数组,我如何获得一个索引,它将首先迭代另一个维度。

在MATLAB中,对于一个2D数组,我如何获得一个索引,它将首先迭代另一个维度。
EN

Stack Overflow用户
提问于 2017-03-08 19:43:12
回答 1查看 64关注 0票数 2

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

根据文件,

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

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

代码语言:javascript
复制
+---+---+---+
| 1 | 2 | 3 |
| 4 | 5 | 6 |
+---+---+---+

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

我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-08 19:47:54

您只需创建一个二维索引数组,即3 x 2,将其转换为2 x 3,然后列主相对于初始矩阵已成为主要行。

代码语言:javascript
复制
indices = reshape(1:6, [], 2).';

然后,可以通过循环遍历这些索引来创建子图。

代码语言:javascript
复制
for k = 1:numel(indices)
    subplot(2, 3, indices(k))
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42680533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档