count nonblank values

조회 수: 7 (최근 30일)
Patrick
Patrick 2011년 1월 29일
Hi, Can anyone tell me how to count nonblank values in an array? I want to find something like:
if number of nonblank values in A > 5 do something
else move on to next record
Thanks Patrick

채택된 답변

Andrew Newell
Andrew Newell 2011년 1월 29일
By blank, do you mean blank characters in a string S? If so, you could do this to count the nonblank characters:
num_nonblank = sum(S~=' ');
Or, if S is a cell array of strings,
num_nonblank = sum(~strcmp(S(:),''));
  댓글 수: 1
Patrick
Patrick 2011년 1월 29일
Sorry ,I sould have said string. Thanks, your answer works. Patrick

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

추가 답변 (1개)

Jan
Jan 2011년 1월 29일
If "blanks" means all white space characters like spaces, line breaks, tabs, formfeeds etc:
num_non_blank = sum(~isspace(S));
Equivalent:
num_non_blank = sum(S <= char(32));
The ASCII-code of all control characters and the space are lower than 33. I'm not sure about the effects of multi-byte characters, e.g. Unicode file names.
  댓글 수: 1
David
David 2013년 7월 2일
Isn't there an easy way to get the lengths of non-blank parts of character vectors placed into an array like this:
A = char('Small', 'Medium', 'Very Large')
The answer I'd like is: 5 6 10. I want a one or two-line solution that returns a vector with the lengths of the non-blank parts of each character string in the matrix but counts blanks that fall WITHIN the character string [between words.] In the above case, the matrix A would be 3x10 but I want a function that ignores only the blanks padded onto the end of each string when the matrix is formed and I can't always get the length of the vectors before they're place in the matrix.
David Horton

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

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by