2012-01-18 3 views
1

는 내가 좋아하는 MATLAB의 변수에 문자열을 말해봐 다음는 MATLAB에서 문자열의 각 라인에 문자열을 추가

내가 좋아하는 것
this is the first line 
this is the second line 
this is the third line 

각의 시작에 고정 된 문자열 을 추가 선. 예를 들면 :

add_substring(input_string, 'add_this. ') 

것 출력 :

add_this. this is the first line 
add_this. this is the second line 
add_this. this is the third line 

내가 입력 문자열을 통해 반복하여이 작업을 수행 할 수 있습니다 알고 있지만, 나는이 작업을 수행 할 수있는 컴팩트 (희망 벡터화) 방법을 찾고 있어요, 아마도 arrayfunaccumarray과 같은 MATLAB 내장 함수 중 하나를 사용합니다.

답변

6

strcat 기능이 사용자가 찾고있는 기능입니다. 문자열의 벡터화 된 연결을 수행합니다.

strs = { 
    'this is the first line' 
    'this is the second line' 
    'this is the third line' 
    } 
strcat({'add_this. '}, strs) 

는 strcat와 함께, 당신은 문자 입력을위한 strcat와의 정상적인 동작입니다 제거의 후행 공백을 갖는로부터 보호하기 위해 셀 ({})에 'add_this. '을 넣어해야합니다.

+0

입력 문자열은 기술적으로는 셀 배열이 아니라 char 문자열이지만'[input_string, ~] = regexp (input_string, '\ n', 'split')를 사용하여 입력 문자열을 변환 할 수 있습니다 : –

+0

'Strcat' works 'char' 입력에 대해서도 마찬가지입니다. 그러나'char '라는 다중 문자열은 2 차원 char 행렬에 별도의 행으로 저장되기 때문에 여전히 분할을 수행해야합니다. 귀하의 입력이 단일 멀티 라인 문자열 인 것 같습니다. –

0

문자열이 셀 배열에 저장된다고 가정하면 cellfun은 원하는대로 할 것입니다.

s = {'this is the first line', 'this is the second line', 'this is the third line'}; 
prefix = 'add_this. '; 
res = cellfun(@(str) strcat(prefix, str), s, 'UniformOutput', false); 
+0

'res'출력을 확인하십시오. 접두사가 제거되었습니다. –

관련 문제