Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

숫자형 값을 텍스트로 변환하기

이 예제에서는 숫자형 값을 텍스트로 변환하여 더 큰 텍스트의 일부로 추가하는 방법을 보여줍니다. 예를 들어, 레이블에 플롯의 특성을 설명하는 숫자가 포함된 플롯에 레이블 또는 제목을 추가하고 싶을 수도 있을 것입니다.

숫자형 값을 string형이나 문자형 벡터로 변환할 수 있습니다. 이때 10진수, 16진수 또는 2진수의 텍스트 표현으로 변환 가능합니다. 같은 기법으로 datetime형 값 또는 duration형 값도 텍스트로 변환할 수 있습니다.

숫자형 배열

숫자를 그 숫자를 나타내는 문자열로 변환하려면 string 함수를 사용하십시오.

A = 3.1416
A = 3.1416
str = string(A)
str = 
"3.1416"

string 함수는 숫자형 배열을 같은 크기를 갖는 string형 배열로 변환합니다.

A = [256 3.1416 8.9e-3]
A = 1×3

  256.0000    3.1416    0.0089

str = string(A)
str = 1x3 string
    "256"    "3.1416"    "0.0089"

char 함수도 숫자를 문자로 변환하지만, string과 동일한 변환을 수행하지는 않습니다. 더 정확히 말하면, 숫자를 개별 문자로 변환합니다(예: 65를 문자 A로 변환). 따라서 부동소수점 숫자를 그 숫자를 나타내는 문자열로 변환할 때는 이 함수를 사용하지 않는 것이 좋습니다.

compose, sprintf 또는 num2str 함수를 사용하여 출력 텍스트의 형식을 지정할 수 있습니다. 이런 함수는 정밀도, 필드 너비, 지수 표기법을 지정할 수 있도록 형식 지정자를 받습니다.

str = compose("%9.7f",pi)
str = 
"3.1415927"

입력값이 숫자형 배열이면 compose는 string형 배열을 반환합니다. 지수 표기법을 사용하여 숫자를 나타내는 string형 배열을 반환합니다.

A = [256 3.1416 8.9e-3];
str = compose("%5.2e",A)
str = 1x3 string
    "2.56e+02"    "3.14e+00"    "8.90e-03"

compose, sprintfnum2str 함수는 다양한 유형의 출력값을 반환합니다.

  • compose는 입력 숫자형 배열과 같은 크기를 갖는 string형 배열을 반환합니다.

  • sprintf는 입력값이 숫자형 배열일 때도 문자형 벡터 또는 string형 스칼라를 반환합니다.

  • num2str은 항상 문자형 벡터를 반환합니다.

가장 좋은 방법은 string 또는 compose 함수를 사용하여 값을 변환하는 것입니다.

  • 숫자형 값을 변환하려면 string을 사용하십시오.

  • 출력 텍스트의 형식도 제어하려면 compose를 사용하십시오.

  • char 함수는 사용하지 마십시오. 이 함수는 숫자를 유니코드 값을 나타내는 정수로 취급해 이에 대응하는 문자로 변환합니다.

변환된 숫자형 값을 텍스트에 추가하기

일반적으로 이러한 함수는 파일 이름 또는 플롯의 레이블과 같은 다른 텍스트에 덧붙일 수 있도록 숫자를 텍스트로 변환할 때 사용할 수 있습니다.

예를 들어, 사인파를 플로팅하고 플롯에 제목을 추가해 보겠습니다. 파동의 주파수를 계산하고 플롯의 제목에 이 값을 나타내는 문자열을 추가해 봅니다.

X = linspace(0,2*pi);
Y = sin(X);
plot(X,Y)
xlabel("X")
ylabel("Y")
freq = string(1/(2*pi));
titleStr = append("Sine Wave, Frequency = ",freq," Hz")
titleStr = 
"Sine Wave, Frequency = 0.15915 Hz"
title(titleStr)

또는 plus 연산자를 사용하여 문자열 끝에 텍스트를 추가할 수도 있습니다. 하지만 plus는 문자형 벡터를 숫자형 배열처럼 처리합니다.

titleStr = "Sine Wave, Frequency = " + freq + " Hz"
titleStr = 
"Sine Wave, Frequency = 0.15915 Hz"

append 함수는 텍스트를 string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열에 추가합니다. 따라서 append 함수를 사용하는 것이 가장 좋습니다.

16진수 값과 2진수 값

텍스트 또는 리터럴을 사용하여 코드에서 16진수 값과 2진수 값을 나타낼 수 있습니다. 이러한 값을 나타내기 위해 권장되는 방법은 값을 리터럴로 작성하는 것입니다. 각각 0x 접두사와 0b 접두사를 사용하여 16진수 리터럴과 2진수 리터럴을 작성할 수 있습니다. 하지만 dec2hex 함수나 dec2bin 함수를 사용하여 이러한 값을 텍스트로 나타내는 것이 유용한 경우가 있을 수 있습니다.

예를 들어, 비트를 2진수 값으로 설정해 보겠습니다. 리터럴을 사용하여 2진수 값을 지정할 경우 이 값은 정수로 저장됩니다. 비트 중 하나를 설정했으면 dec2bin 함수를 사용하여 새 2진수 값을 텍스트로 표시합니다.

register = 0b10010110
register = uint8
    150
register = bitset(register,5,0)
register = uint8
    134
binStr = dec2bin(register)
binStr = 
'10000110'

날짜/시간

MATLAB은 날짜/시간을 저장하고 이를 숫자형 값으로 처리하기 위해 datetime 데이터형 및 duration 데이터형을 제공합니다. 이와 같은 값을 날짜/시간을 나타내는 텍스트로 변환하려면 string 함수와 char 함수를 사용하십시오.

현재 날짜와 시간을 문자열로 나타냅니다.

d = datetime('now')
d = datetime
   31-Jan-2020 22:39:10

str = string(d)
str = 
"31-Jan-2020 22:39:10"

duration형 값으로 구성된 배열을 나타냅니다.

D = seconds(1:5)
D = 1x5 duration
   1 sec   2 sec   3 sec   4 sec   5 sec

str = string(D)
str = 1x5 string
    "1 sec"    "2 sec"    "3 sec"    "4 sec"    "5 sec"

참고 항목

| | | | | | | | | | | |

관련 항목