2012-02-17 4 views
2

온도의 행렬과 측정의 깊이에 해당하는 벡터가 있다고 해봅시다.matlab에서 문자열과 숫자를 합치는 것

depth = [1,4,8,11,15,16,20]; 
Temp = rand(1800,7); 

각 머리글은 측정의 깊이를 나타내는 Temp의 첫 번째 행에 머리글 행을 삽입하고 싶습니다. 온도와 깊이를 표제로해야합니다. temp1, temp4, temp8, temp11 ... 등.

'temp'를 정의하고 각 열의 해당 깊이를 추가하는 것과 같은 일을 할 생각이었습니다.

varstarter = 'temp'; 

그런 다음 'regexp'와 같은 것을 사용하지만 어떻게 작동하는지 잘 모르겠습니다. 제안 사항이 있으십니까? 여기

답변

5
arrayfun(@(x) ['temp' int2str(x)],depth,'UniformOutput',false) 

@(x) ['temp' int2str(x)] 지정된 문자 순서 temp 자 같은 정수 입력을 추가 익명 함수를 정의한다. arrayfun은이 함수를 두 번째 인수의 모든 요소 즉, depth에 적용합니다. (arrayfun은 함수의 응용 프로그램 당 하나의 숫자와 같이 숫자 출력을 생성하는 데 가장 자주 사용되기 때문에 출력은 일반적으로 두 번째 입력과 동일한 크기의 행렬입니다. 따라서 'UniformOutput',false 옵션은 (문자열의 길이는 각 입력의 자릿수에 따라 다릅니다.)

을 사용하면 표제와 숫자 데이터를 하나의 셀 배열로 결합 할 수 있습니다. arne.b @의 좋은 답변을 통해 스타일의

3

작은 개선 : 자세한 내용은 밖으로 this post

arrayfun(@(x) {['temp' int2str(x)]},depth); 

확인합니다.

관련 문제