【发布时间】:2016-03-14 15:39:21
【问题描述】:
我有一个多维数组,例如:
T(1:3,1:3,1) = magic(3);
T(1:3,1:3,2) = 10 * magic(3);
T(1:3,1:3,3) = 100 * magic(3);
现在我想从T 中提取某些值。这些值的位置以矩阵形式给出:
ind = [1,2,3;2,1,1;2,2,2;3,3,3];
所以第一个值应该是 T(1,2,3),第二个是 T(2,1,1),以此类推。
现在我正在通过以下方式进行操作:
for n=1:4
output(n,1)=T(ind(n,1),ind(n,2),ind(n,3));
end
output 应该在哪里
100
3
50
200
但这真的很慢,因为我实际上有更大的数组。有没有办法以矢量化方式访问这些值?
比如:
output(1:4,1)=T( ind(1:4,1:3) )
【问题讨论】: