directly use results of function

1 回表示 (過去 30 日間)
Ivan
Ivan 2014 年 7 月 9 日
回答済み: Daniel 2014 年 7 月 9 日
I would like to get 'def' from something like:
(strsplit('abc.def.ghi','.'))(2)
I don't want to do this
r = strsplit('abc.def.ghi','.')
r(2)
is this possible?
  1 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2014 年 7 月 9 日
Why you don't want to do?
r = strsplit('abc.def.ghi','.')
r(2)

サインインしてコメントする。

採用された回答

James Tursa
James Tursa 2014 年 7 月 9 日
This has been asked many time on this forum. MATLAB does not support indexing directly into a function result. This is a restriction of the language itself, not just your particular function example. So you will need to use the 2-step approach. Yes, it can clutter up your code a bit, but that's the way it is.

その他の回答 (1 件)

Daniel
Daniel 2014 年 7 月 9 日
subsref(strsplit('abc.def.ghi','.'),struct('type','{}','subs',{{2}}))
The subsref function takes two arguments. The first is the data structure (in this case a cell array of strings) and the second is a structure with two fields: type and subs. Type contains the operator which will be used to index the data structure, and the subs field contains the index you want to access.

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by