假设我有一个3x3x3 Matlab数组,其成员为1到27
a=reshape(1:27, [3 3 3])
我想用
这样的语法创建一个子集 b=a(range1,range2,range3)
其中range1 = range2 = range3 = 1:2我会得到成员b(1,1,1)
和b(2,2,2)
。即
b= [1 14]
是否可以通过索引和没有任何功能(例如diag)来做到这一点?感谢...
答案 0 :(得分:1)
可以使用sub2ind
函数完成,如下所示:
b=a(sub2ind(size(a),range1,range2,range3))
ans: b=[1 14]
答案 1 :(得分:1)
索引可以使用sub2ind
,
a(sub2ind(size(a),[1:2],[1:2],[1:2]))
如果你想避免所有功能,你可以自己计算线性指数......