Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有一个 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). IE
b(1,1,1)
b(2,2,2)
b= [1 14]
是否可以仅使用索引而不使用任何功能(例如诊断)来做到这一点?谢谢...
索引可以使用sub2ind,
sub2ind
a(sub2ind(size(a),[1:2],[1:2],[1:2]))
如果你想避免所有功能,你可以自己计算线性指数......
可以通过sub2ind以下功能完成:
b=a(sub2ind(size(a),range1,range2,range3)) ans: b=[1 14]