Hello,
I have a cell array like
' '
' '
'1231231'
' '
' '
'1231231'
' '
I want to delete this blank elements and transform this cell array from 7x1 to 2x1. How can I do it? Is there any methods to solve this problem without cellfun or etc.? Thank you.

 채택된 답변

Fangjun Jiang
Fangjun Jiang 2022년 6월 6일

0 개 추천

If the data is in a cell array, mostly likely cellfun() is needed, unless you use for-loop.
strtrim() or strip() can remove the white spaces.
b={' '
' '
'1231231'
' '
' '
'1231231'
' '};
c=strip(b);
index=cellfun(@isempty,c);
d=b(~index)
d = 2×1 cell array
{'1231231'} {'1231231'}

댓글 수: 7

tinkyminky93
tinkyminky93 2022년 6월 6일
편집: tinkyminky93 2022년 6월 6일
First argument must be text, error using strip.
Jan
Jan 2022년 6월 6일
@tinkyminky: Does this mean, that your cell array does not contains CHAR vectors? Then the question is misleading. Please post some code, which creates your input data.
tinkyminky93
tinkyminky93 2022년 6월 6일
Yes it is. It does not contain anything. It is just created because of the for loop and there is no data inside of it.
@tinkyminky93: I do not understand, what you want to say. What does not contain anything? Which loop? What is the meaning of the ' ' blocks in your question?
If tzhese blocks are empty matrices instead of char vectors containing spaces, simple omit the strip command:
c = c(~cellfun('isempty',c))
tinkyminky93
tinkyminky93 2022년 6월 7일
Actually i am scanning all the text file with for loop and if it contains the data that I want, I am taking these values and deleting rest. Thats where for loop comes from.By the way my array is char array for now, is there any other method?
tinkyminky93
tinkyminky93 2022년 6월 7일
@Fangjun Jiang sir I applied your suggestion and it seems like that is what I want. But I have a problem. My data becomes 32x1 cell and every element is 2x1 cell. What I want is 32x1 and every element is 1x2. How can I do it?
Fangjun Jiang
Fangjun Jiang 2022년 6월 7일
Provide some example data that others can use directly in MATLAB to help you. For example
' '
'1231231'
can not be used directly in MATLAB, while
a={' '
'1231231'}
can so others can use it to provide you with example code.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

릴리스

R2021b

질문:

2022년 6월 6일

댓글:

2022년 6월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by