MATLAB Answers

converting cells with strings inside cells into strings inside cells

2 ビュー (過去 30 日間)
Micha
Micha 2018 年 7 月 24 日
編集済み: Micha 2018 年 7 月 24 日
I use the following code: cellfun(@(x) regexp(x, '@(.*)@', 'tokens'), array_of_strings) The idea is to replace all the strings in the array with only the substring between the @'s. It works, the only problem is that the 'tokens' option leaves me with cells inside cells, which is inconvenient. My questions are: 1. Is there an alternative way to do it without getting cells inside cells? 2. It is interesting for me to know if there is a function that converts "cell arrays with strings inside a cell array" into simply "strings in a cell array". Thanks

  2 件のコメント

Paolo
Paolo 2018 年 7 月 24 日
Can you show a sample of array_of_strings?
Micha
Micha 2018 年 7 月 24 日
array_of_strings = {'a @one@', 'a @two@', 'a@three@'};

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

採用された回答

Paolo
Paolo 2018 年 7 月 24 日
編集済み: Paolo 2018 年 7 月 24 日
cellfun(@(x) regexp(x,'(?<=@)(.*)(?=@)','match'),array_of_strings)
Or
cellfun(@(x) regexp(x,'(?<=@)(.*)(?=@)','tokens','once'),array_of_strings)

  6 件のコメント

表示 3 件の古いコメント
Micha
Micha 2018 年 7 月 24 日
Of course, your 2 solutions solved this problem to begin with. But I was interested if there is any function to "fix" this new condition.
Paolo
Paolo 2018 年 7 月 24 日
>>horzcat(new_array{:})
{'one'} {'two'} {'three'}
Does this help?
Micha
Micha 2018 年 7 月 24 日
That seems to do the trick
Thanks!

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

その他の回答 (0 件)

タグ

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by