'곱하기'에 해당되는 글 1

  1. 2009.08.05 Matlab - 지난번 문제 해결책, 문자 행렬끼리 곱하기
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()함수를 사용하면, 각각의 원소에 대해서 문자열을 붙일 수 있습니다.


출처 지식in 글쓴이 dlimpid