【发布时间】:2014-12-27 00:15:18
【问题描述】:
我有一个 12 维数组,并且在优化问题中使用每个维度作为索引值。
A(:,:,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10)
每个索引值i是一个从1到5的值。
我想将A 从大到小排序并跟踪索引,以便我知道哪些索引对应于A 的哪个值。
所以我的理想输出将是一个 2 列单元格/数组,其中一列是值,另一列是索引值。
对于一个简单的 3D 示例:假设我有一个 3D 数组:A(:,:,i1)。
地点:
A(:,:,1) = 2
A(:,:,2) = 6
A(:,:,3) = 13
A(:,:,4) = 11
A(:,:,5) = 5
我希望我的输出是:
13 3
11 4
6 2
5 5
2 1
编辑:
假设我有 1x1x3x3 大小的输入,这样
A(1,1,1,1) = 3
A(1,1,2,1) = 1
A(1,1,3,1) = 23
A(1,1,1,2) = 12
A(1,1,2,2) = 9
A(1,1,3,2) = 8
A(1,1,1,3) = 33
A(1,1,2,3) = 14
A(1,1,3,3) = 6
预期的输出是:
33 [1,1,1,3]
23 [1,1,3,1]
14 [1,1,2,3]
12 [1,1,1,2]
9 [1,1,2,2]
8 [1,1,3,2]
6 [1,1,3,3]
3 [1,1,1,1]
1 [1,1,2,1]
【问题讨论】:
-
那么输出 2 列数组的大小是多少?那就是它有多少行?
-
它将是 prod(size(A)),即 9765625
-
您能否以一个小的 3D 数组而不是 12 维数组为例,向我们展示预期的输出?
-
我编辑了评论举个例子
-
很抱歉再次打扰,但没有那么简单。你能假设
2 x 2 x 2大小的输入吗?或者你的意思是你总是有1 x 1 x M x ..作为输入?
标签: arrays matlab sorting indexing n-dimensional