How to put the lengths of each string in a cell array of strings into a single vector?

12 visualizaciones (últimos 30 días)
I have tried in vain to put this one together. This does work: s = seq(n,:),where n is the specific line for a the string. I've tried using the length and size functions, but I can't get the individual row lengths into a vector. I've also searched through the function lists and looked for similar questions. Ideally, I want to index the cell's in their original order, and put the index number next to the length value. I know how to create a vector with numbers 1 to 100 --v = 1:1:100, but I'm not sure how to line that up and add it to the string array. I apologize for my newbiness, I admit this is a beginner question. Any feedback is appreciated. thx

Respuesta aceptada

Ken Atwell
Ken Atwell el 6 de Jun. de 2011
If I understand your question correctly:
A = {'Hello', 'World!!!'}
B = cellfun(@length, A)
cellfun executes a function over every element in a cell array.
  1 comentario
Adam Quintero
Adam Quintero el 7 de Jun. de 2011
This works quite well. Thank you for the explanation of cellfun, it is quite helpful. It gets rid of the overhead of a loop, and I can already see tons of applications.
Much thanx

Iniciar sesión para comentar.

Más respuestas (2)

Rob Graessle
Rob Graessle el 6 de Jun. de 2011
Not a particularly elegant solution, but it works:
>> a={'the', 'quick', 'brown', 'fox'}
a =
'the' 'quick' 'brown' 'fox'
>> for ii=1:length(a), wordLengths(ii)=length(a{ii}); end
>> wordLengths
wordLengths =
3 5 5 3

Matt Fig
Matt Fig el 6 de Jun. de 2011
a={'the', 'quick', 'brown', 'fox'}
L = cellfun('size',a,2)

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by