Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

str2num

문자형 배열 또는 string형을 숫자형 배열로 변환

설명

예제

X = str2num(chr)은 문자형 배열 또는 string형 스칼라를 숫자형 행렬로 변환합니다. 입력값에는 개별 요소를 나타내기 위해 공백, 쉼표, 세미콜론을 포함할 수 있습니다. 입력값을 숫자형 값으로 구문 분석할 수 없으면 str2num은 빈 행렬을 반환합니다.

str2num 함수는 셀형 배열 또는 비 스칼라 string형 배열을 변환하지 않으며, + 연산자와 - 연산자 앞뒤의 공백을 무시하지 않습니다.

참고

보안 고려 사항: str2num은 입력 인수를 실행하는 eval 함수를 사용하여 구현됩니다. 신뢰할 수 없는 사용자 입력값을 사용하여 str2num을 호출할 때는 예기치 않은 코드 실행을 방지하기 위해 입력값의 유효성을 검사하십시오. 신뢰할 수 없는 사용자 입력값의 예로는 모르는 사용자나 통제할 수 없는 사용자의 입력값을 들 수 있습니다. 이 우려 사항을 해결해야 하는 경우 다음과 같은 접근 방법을 고려하십시오.

  • str2num에 대한 입력값의 유효성을 검사합니다. 먼저 허용되는 연산을 찾아봅니다(예: (), /, *, +, -, ., 문자 ei의 사용). 그런 다음, 이와 다른 동작을 발견했다면 실행을 허용하지 마십시오.

  • str2numstr2double과 같은 함수로 바꿉니다.

의도하지 않은 부수 효과: 그밖에 입력값이 함수 이름을 포함하는 경우에도 의도하지 않은 부수 효과가 발생할 수 있습니다. 이러한 문제를 방지하려면 str2double을 사용하십시오.

예제

[X,tf] = str2num(chr)str2numchr을 성공적으로 변환한 경우에 두 번째 출력 인수 1(true)을 추가로 반환합니다. 그렇지 않으면 str2num0(false)을 반환합니다.

예제

모두 축소

숫자를 나타내는 문자형 벡터를 변환합니다.

X = str2num('100')
X = 100
X = str2num('100 200 300 400')
X = 1×4

   100   200   300   400

str2num은 지수 표기법을 해석합니다.

X = str2num('12e-3 5.9e-3 -8.1e-3 2.56e-3; 5 11.2 17.9 33')
X = 2×4

    0.0120    0.0059   -0.0081    0.0026
    5.0000   11.2000   17.9000   33.0000

str2numuint16을 사용하여 문자형 벡터를 부호 없는 16비트 정수로 변환합니다.

X = str2num('256');
X = uint16(X)
X = uint16
    256

truefalse가 포함된 문자형 벡터를 논리형 배열로 변환합니다.

X = str2num('false true true false')
X = 1x4 logical array

   0   1   1   0

실패한 변환의 상태를 반환합니다. tf0이고 X는 빈 행렬입니다.

[X,tf] = str2num('12e-3 m/s, 5.9e-3 m/s')
X =

     []
tf = logical
   0

여분의 텍스트(m/s)를 제거하면 성공적으로 변환됩니다.

[X,tf] = str2num('12e-3 5.9e-3')
X = 1×2

    0.0120    0.0059

tf = logical
   1

입력 인수

모두 축소

숫자형 행렬 표현으로, 문자형 배열 또는 string형 스칼라로 지정됩니다.

숫자형 행렬을 나타내는 텍스트에는 공백, 쉼표 또는 세미콜론이 포함될 수 있습니다(예: '5', '10,11,12', '5,10;15,20'). 입력 텍스트에는 숫자형 값과 구분 기호 외에도 다음 항목이 포함될 수 있습니다.

  • 소수점

  • 선행 + 또는 - 기호

  • 10의 거듭제곱 스케일링 인자 앞에 오는 문자 e 또는 d

  • 복소수나 허수를 나타내는 문자 i 또는 j

  • 논리값을 나타내는 true 또는 false

공백 문자의 유무는 유의미할 수 있습니다. 예를 들어, str2num('1+2i')str2num('1 + 2i')는 모두 복소수 1.0000 + 2.0000i를 반환하고, str2num('1 +2i') 는 1×2 벡터 [1.0000 + 0.0000i 0.0000 + 2.0000i]를 반환합니다. 이러한 문제를 방지하려면 str2double 함수를 사용하십시오.

str2num은 문자형 배열과 string형 스칼라만 변환합니다. 비 스칼라 string형 배열 또는 셀형 배열을 숫자형 배열로 변환하려면 str2double 함수를 사용하십시오.

출력 인수

모두 축소

출력 배열로, 숫자형 행렬로 반환됩니다.

true 또는 false 결과로, logical 데이터형의 1이나 0으로 반환됩니다.

확장 기능

버전 내역

R2006a 이전에 개발됨