MATLAB: Given a cell array, find the longest string

arraycelllength

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

Best Answer

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))