2017-11-02 23 views
2

나는 아마 MATLAB에서 간단한 문제가 붙어있다. 나는이처럼 보이는 1x43 셀 어레이 (각 값 앞에 공백을 참고)이 있습니다셀 배열을 MATLAB의 숫자 배열로 변환하려면 어떻게해야합니까?

labels = {' 1', ' 2', ' 3', ... , ' 43'}; 

을 그리고 난 그저 같이 표시됩니다 치수 1x43의 숫자 벡터로 변환 할 :

labels_numeric = [1 2 3 ... 43]; 

누구나 내게이 트릭을 암시 할 수 있습니까?

답변

1

gnovice의 대답이에 대한 간단한 솔루션입니다 일반적으로 특정 요소에 변형을 적용하여 셀 배열을 숫자로 바꾸려면 cellfun을 사용하면됩니다. 예를 들어, 당신은 당신이 3를 얻을 수 있습니다 length({'apple' 'orange' 'banana'})에 대한 MATLAB을 요청하지만 배열의 각 문자열의 길이를 원한다면 당신이 할 수있는 경우 :

>> cellfun(@length, {'apple' 'orange' 'banana'}) 

ans = 

    5  6  6 

당신은 함수에 익명 함수, 또는 핸들을 사용할 수 있습니다 당신이 정의한대로, cellfun의 인수로, 변환이 필요한만큼 복잡 할 수 있습니다.

함수의 결과가 스칼라 숫자 또는 논리 값인 경우 cellfun의 출력은 숫자 또는 논리 배열이됩니다. 그렇지 않으면 다른 셀 배열이됩니다 (크기가 다를 경우 'UniformOutput', false 인수 쌍을 사용해야 할 것입니다)