A = {'a'; 'bb'; 'ccc'};
B = {'d', 'ee', 'fff', 'gggg'};
dA = A(:, ones(1,length(B)));
dB = B(ones(1,length(A)), :);
C = strcat(dA, dB);
C
--
C =
'ad' 'aee' 'afff' 'agggg'
'bbd' 'bbee' 'bbfff' 'bbgggg'
'cccd' 'cccee' 'cccfff' 'cccgggg'
--
MATLAB에서 문자열 처리를 할 때에는 cell을 쓰시는 게 편합니다.
일단 A 열벡터와 B 행벡터에 n개와 m개의 문자열이 있다고 합시다. (위에서는 n = 3, m = 4겠죠.)
dA는 A를 옆으로 m번 중복시켜서 만든 n*m cell이고,
dB는 B를 아래로 n번 중복시켜서 만든 n*m cell입니다.
(dA와 dB 마지막의 세미콜론을 지우고 실행해 보시면 금방 아실 겁니다.)
이렇게 크기가 같은 두 cell을 strcat()함수를 사용하면, 각각의 원소에 대해서 문자열을 붙일 수 있습니다.
B = {'d', 'ee', 'fff', 'gggg'};
dA = A(:, ones(1,length(B)));
dB = B(ones(1,length(A)), :);
C = strcat(dA, dB);
C
--
C =
'ad' 'aee' 'afff' 'agggg'
'bbd' 'bbee' 'bbfff' 'bbgggg'
'cccd' 'cccee' 'cccfff' 'cccgggg'
--
MATLAB에서 문자열 처리를 할 때에는 cell을 쓰시는 게 편합니다.
일단 A 열벡터와 B 행벡터에 n개와 m개의 문자열이 있다고 합시다. (위에서는 n = 3, m = 4겠죠.)
dA는 A를 옆으로 m번 중복시켜서 만든 n*m cell이고,
dB는 B를 아래로 n번 중복시켜서 만든 n*m cell입니다.
(dA와 dB 마지막의 세미콜론을 지우고 실행해 보시면 금방 아실 겁니다.)
이렇게 크기가 같은 두 cell을 strcat()함수를 사용하면, 각각의 원소에 대해서 문자열을 붙일 수 있습니다.
출처 지식in 글쓴이 dlimpid