Given a cell array, find the longest string
15 ビュー (過去 30 日間)
古いコメントを表示
Preferably without using loops, I need to find the longest string in a cell array. So with an example array such as the following, in what ways could I go about this? If there are multiple entries with the same length, I need to be able to find both of them.
I'd like to see a way to do it with loops as well.
Pete Townshend Toyota Gene Simmons Steve Jobs Socrates Frank Sinatra Astronomy Idaho Sweatshirt
Thanks
0 件のコメント
採用された回答
Azzi Abdelmalek
2013 年 2 月 15 日
編集済み: Azzi Abdelmalek
2013 年 2 月 15 日
a={'Pete' 'Townshend1' 'Simmons' 'Steve' 'Sinatra' 'Idaho' 'Sweatshirt'}
val=cellfun(@(x) numel(x),a)
out=a(val==max(val))
%With a loop
for k=1:numel(a)
val(k)=numel(a{k})
end
out=a(val==max(val))
1 件のコメント
Jan
2013 年 2 月 15 日
編集済み: Jan
2013 年 2 月 15 日
cellfun('length', a) is much more efficient, because the string methods of cellfun() are determined inside the MEX function, while the anonymous functions need to call Matlab for each argument. Unfortunately these string methods are marked as "backward compatibility" feature only in the documentation, but this is an understatement.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!