在MATLAB中模拟级联索引有哪些好方法?

时间:2013-10-10 15:28:45

标签: matlab

E.g。我想做的事情如下:

A=4:20;
find(A>5)(2) % want to access the 2nd element of the index array returned by find

1 个答案:

答案 0 :(得分:3)

是的,comes up中的fairly frequently different contexts,单行答案为subsref。对于你的情况,就是这样:

subsref(find(A>5),struct('type','()','subs',{{2}}))

更清洁的解决方案使用未记录的builtin

builtin('_paren',find(A>5),2)

作为丑陋语法或未记录功能的替代,您可以定义一个小函数,如下所示,

function outarray = nextind(inarray,inds)
outarray = inarray(inds);

或内联函数:

nextind = @(v,ii) v(ii);

并将其称为nextind(find(A>5),2)。这比subsref更干净,如果您正在进行线性索引(而不是下标),那就更好了。