【问题标题】:What are some good ways to emulate cascading indexing in MATLAB? [duplicate]在 MATLAB 中模拟级联索引有哪些好方法? [复制]
【发布时间】:2013-10-18 11:09:21
【问题描述】:

例如我想做一些事情,例如:

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

【问题讨论】:

  • 我只是想到了一个替代解决方案,并更新了我的答案。无论如何,这肯定不是第一次被问到类似的问题,但是...blog.stackoverflow.com/2010/11/…

标签: matlab


【解决方案1】:

是的,这个comes upfairlyfrequentlydifferent 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 更干净,如果您正在执行线性索引(而不是下标),这很好。

【讨论】:

  • 我猜没有帮助。哦,好吧
  • 嗯,是的,我也不懂 -1。我希望投反对票的人发表评论。无论如何,谢谢你的回答!
  • 这可能是因为重复因素......但这就是我添加所有链接和替代解决方案的原因。
猜你喜欢
  • 2015-03-17
  • 1970-01-01
  • 2014-07-30
  • 2015-03-22
  • 2011-01-08
  • 1970-01-01
  • 2013-11-16
  • 2010-09-11
  • 2018-10-26
相关资源
最近更新 更多