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

조회 수: 12 (최근 30일)
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

채택된 답변

Ken Atwell
Ken Atwell 2011년 6월 6일
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
Adam Quintero
Adam Quintero 2011년 6월 7일
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

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Rob Graessle
Rob Graessle 2011년 6월 6일
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 2011년 6월 6일
a={'the', 'quick', 'brown', 'fox'}
L = cellfun('size',a,2)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by