2012-08-22 2 views
5

나는 세포로 구성된 구조를 가지고있다. 각 셀의 시작 부분과 끝에서 모든 공백을 제거하고 싶습니다. 그리고 셀의 텍스트 사이에있는 모든 공백을 유지하려고합니다. 제가matlab 처음과 끝 부분에 공백을 제거하는 방법?

s = ' bbb b bbbb ' 

있는 경우 나

s = 'bbb b bbbb' 

를 가져올 그래서 아마도 루프를 사용하여 (예를 들어, 2 × 3 대)이 구조체에 셀의 미지수에이 방법을 적용 할. 누구든지 어떻게 할 생각이 있습니까? regexp으로 실패했습니다.

+0

이제는 간단하면서도 유용한 답변을 얻었습니다. strtrim (s)! 각 셀에 어떻게 적용 할 수 있습니까? – berndh

답변

5

당신은 structfun()과와 함께 strtrim()을 사용할 수 있습니다 셀 색인 생성 :

your_struct = structfun(@(x) strtrim(x{1}), your_struct); 

이것은 str UCT 당신은 항상 곁에의 말을 돌볼하지 않습니다

your_struct = structfun(@(x) ... 
    cellfun(@strtrim, x, 'uni', false), ... 
    your_struct, 'uni', false); 
+0

셀이 10x2라고 말하도록 할 수 있습니다. 각 셀에는 시작, 중간 및 끝에서 공백이있는 문자열이 포함되어 있으며 시작 부분에서 모두 분리해야합니다. 그래서 ** my_cell (1,1) = 'name1'** ** my_cell (1,2) = 'string1'** ** my_cell (2,1) = 'new name2'** 등등. 이 작업을 수행하는 가장 간단한 솔루션이 될까요? 당신은 내가 unfortunatelly 적용 할 수 없었어요 .. – berndh

+0

@ user1578163 내 솔루션을 적용하면 어떻게됩니까? 오류가 있습니까? 구조체 + 셀의 최소 작동 버전을 포함하도록 질문을 편집 할 수 있습니까? –

+0

확실, 감사합니다 : 내 작업 예제는 ** M = { 'title1' '내 name1'; 'title2' 'my name2'} ** 솔루션을 적용 할 때 얻을 수있는 것 : STRUCTFUN의 입력은 스칼라 구조 여야합니다. – berndh

0

당신의 매트릭스가 호출 될 경우는, 수행 세포가 포함 된 구조이다

newmatrix = cellfun(@strtrim, a, 'UniformOutput', false) 
+0

및 각 셀에 대해 어떻게 효율적으로 적용 할 수 있습니까? 맨 마지막에이 함수를 작성해도 제거되지 않기 때문입니다. – berndh

+0

각 셀의 의미는 무엇입니까? – tomelse

+0

매트릭스가 있습니까? – tomelse

0

A 경우에, 당신이 할 수있는 :

New_A=structfun(@strtrim,A,'UniformOutput',false) 
0

strtrim을 시도 할 수

your_struct.a = { {' some string '} 
        {' some other string '}}; 

your_struct.b = { {' again, some string '} 
        {' again, some other string '}}; 

... 

your_struct.a = {' some string '}; 
your_struct.b = {' some other string '}; 
... 

는 다른 구조 말이있는 경우와 같은 레이아웃을 가지고 있습니다 문자열은 나를 위해 사용하므로 deblank

그래서 strtrim이 원하는 모든 작업을 수행하지 못하면 다음을 사용할 수 있습니다. 그것은 당신이 원하는 걸 얻기 위해 deblank와 함께.

관련 문제