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

조회 수: 10 (최근 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에서 Cell Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by