2014-12-31 35 views
1

我想从函数中使用一个特定的返回值,并将其作为一个函数传递给另一个函数。Matlab:直接访问函数的特定返回值

的问题是,我不能简单地访问诸如someFunction(X,Y,Z)的返回值{2}或[2]或(2), 例如:

regexpi(str,'[a-z]+','match') % returns a cell array, i just need the first match.(btw,^doesn't work in matlab?) 

如果我想取regexpi()的第一个孩子,并把它传递给myfun(),我要的是:

myfun(regexpi(str,'[a-z]+','match')(1)) 

,但我得到了一个错误,而不是:

Error:()-indexing must appear last in an index expression. 

有没有解决方法?谢谢!

+1

我建议你只做两行。你的代码将会更具可读性。 – Dan

回答

2

不幸的是它不能在matlab中完成,它只是不被支持。我知道的唯一方法就是创建itemgetter(python中的ala itemgetter)。例如,

itemgetter = @(r, idx) r{idx} 


#now get first returned argument 
itemgetter(regexpi(str,'[a-z]+','match'), 1) 

欲了解更多信息,以及其他可能的方式看看here

+0

谢谢!这很整洁! –