E.g。我想做的事情如下:
A=4:20;
find(A>5)(2) % want to access the 2nd element of the index array returned by find
答案 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
更干净,如果您正在进行线性索引(而不是下标),那就更好了。