例如我喜歡做的事情,如:什麼是一些很好的方法來模擬MATLAB中的級聯索引?
A=4:20;
find(A>5)(2) % want to access the 2nd element of the index array returned by find
例如我喜歡做的事情,如:什麼是一些很好的方法來模擬MATLAB中的級聯索引?
A=4:20;
find(A>5)(2) % want to access the 2nd element of the index array returned by find
是的,這comes upfairly在different contextsfrequently,和一個行的答案是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
更乾淨,如果你正在進行線性索引(不是下標),那麼它會更好。
我剛想到一個替代解決方案,並更新了我的答案。無論如何,這絕對不是第一次有類似的問題,但... http://blog.stackoverflow.com/2010/11/dr-strangedupe-or-how-i-learned-to-stop-worrying-和 - 愛情複製/ – chappjc