MATLAB에서 문자열에 변수 삽입하기

Ammar Ali 2022년8월18일
MATLAB에서 문자열에 변수 삽입하기

이 튜토리얼에서는 MATLAB의 num2str() 함수를 사용하여 문자열에 변수 값을 삽입하는 방법에 대해 설명합니다.

MATLAB에서 문자열에 변수 삽입하기

변수 값을 문자열에 삽입하려면 num2str() 함수를 사용하여 값을 문자열 또는 문자 배열로 변환한 다음 strcat() 함수를 사용하여 문자열과 연결할 수 있습니다. 예를 들어, 부동 소수점 숫자를 문자열에 삽입해 봅시다.

아래 코드를 참조하십시오.

clc
clear

n = 100.577;
s1 = num2str(n);
s2 = "value is ";
s3 = strcat(s2,s1)

출력:

s3 =

    "value is 100.577"

num2str() 함수의 두 번째 인수를 사용하여 출력에서 ​​보고 싶은 정밀도 또는 자릿수를 추가할 수도 있으며 입력은 양의 정수여야 합니다. 두 번째 인수는 문자열로 변환될 최대 자릿수를 설정하고 정밀도를 설정하려면 입력이 부동 소수점 숫자여야 합니다.

예를 들어 숫자의 처음 3개 요소만 문자열로 변환하고 다른 문자열과 연결해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

n = 10.212;
s1 = num2str(n,3);
s2 = "value is ";
s3 = strcat(s2,s1)

출력:

s3 =

    "value is 10.2"

num3str() 함수에서 정밀도를 3으로 설정했기 때문에 출력에서 ​​s3 문자열에는 부동 소수점 숫자의 3자리만 포함됩니다. 정밀도를 설정하지 않으면 num2str() 함수는 전체 숫자를 문자 배열로 변환합니다.

백분율 기호가 있는 f 문자를 사용하여 부동소수점 숫자의 경우 유의 자리 수처럼 입력의 서식 유형을 설정하고 유의 자리 수를 백분율과 f 문자 사이에 전달할 수도 있습니다. 예를 들어, 긴 부동 소수점 숫자를 두 개의 유의한 숫자로 반올림한 다음 문자열로 연결하자.

아래 코드를 참조하십시오.

clc
clear

n = 10.218;
s1 = num2str(n,'%0.2f');
s2 = "value is ";
s3 = strcat(s2,s1)

출력:

s3 =

    "value is 10.22"

위의 출력에서 ​​숫자가 두 개의 유효 자릿수로 반올림되었음을 알 수 있습니다. 위의 코드에서는 큰따옴표를 사용하여 문자열을 정의했지만 작은따옴표를 사용하여 문자열을 정의할 수도 있습니다.

strcat() 함수를 사용하여 같은 줄에 여러 문자열을 연결할 수도 있습니다. 함수의 모든 문자열 변수만 전달하면 됩니다.

두 개 이상의 문자열 사이에 더하기 기호를 사용하여 문자열을 연결하고 단일 문자열을 얻을 수도 있습니다. 위의 코드에서는 숫자와 문자열 사이에 공백을 수동으로 추가했지만 작은따옴표로 문자열을 정의하면 두 변수 사이에 공백을 추가할 수 없습니다.

예를 들어 작은따옴표를 사용하여 위의 예를 반복해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

n = 10.218;
s1 = num2str(n);
s2 = 'value is ';
s3 = strcat(s2,s1)

출력:

s3 =

    'value is10.218'

위의 출력에서 ​​s2 문자열에 공백을 추가했지만 s3 문자열에는 공백이 없습니다. 더하기 기호를 사용하면 출력이 동일합니다.

이 문제를 방지하려면 연결되는 문자열 중 하나 이상이 문자형 벡터나 배열이 아니라 문자열이어야 합니다. num2str() 함수는 항상 문자 배열을 반환하지만 string() 함수를 사용하여 출력을 문자열로 가져올 수 있습니다.

예를 들어 위의 예에서 string() 함수를 사용해보자. 아래 코드를 참조하십시오.

clc
clear

n = 10.218;
s1 = string(n);
s2 = 'value is ';
s3 = s2 + s1

출력:

s3 =

    "value is 10.218"

출력에 숫자와 문자열 사이에 공백이 있고 출력도 문자열 데이터 유형임을 알 수 있습니다. 긴 배열의 문자 또는 문자열이 있고 이들을 결합하고 그 사이에 공백이나 다른 구분자를 포함하려면 join()strjoin() 함수를 사용할 수 있습니다.

결합하려는 값이 벡터나 행렬에 있으면 join() 함수를 사용할 수 있고 값이 배열에 있으면 strjoin() 함수를 사용해야 합니다. join() 함수를 사용하여 다른 데이터 유형의 변수를 결합할 수 있지만 모든 변수를 단일 벡터 또는 행렬에 넣고 join() 함수 내부에 전달하여 결합해야 합니다.

예를 들어 join() 함수를 사용하여 문자열, 문자 배열 및 숫자 값을 조인해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

n = 100.55;
s1 = "Value is";
s2 = 'kg';
n = [s1,n,s2];
s = join(n)

출력:

s =

    "Value is 100.55 kg"

결합하려는 변수의 값 중 적어도 하나는 문자열이어야 합니다. 그렇지 않으면 결과가 변경될 수 있습니다. 위의 출력에서 ​​세 개의 변수가 함께 결합되었습니다. 하나의 입력이 문자열이기 때문에 결과는 문자열로 저장됩니다.

strjoin() 함수를 사용할 수도 있지만 조인하려는 변수는 문자 배열 데이터 유형이어야 하고 배열로 묶어야 합니다. 기본적으로 join()strjoin() 함수는 벡터 또는 배열의 값 사이에 공백을 넣지만 join()strjoin의 두 번째 인수를 사용하여 다른 구분 기호와 문자를 넣을 수도 있습니다. () 기능.

벡터 또는 배열의 요소 사이에 구분 기호를 추가하려면 join() 또는 strjoin() 함수 내에서 구분 기호를 문자 배열로 전달해야 합니다. 예를 들어 다른 구분 기호를 사용하여 위의 예를 반복해 보겠습니다.

아래 코드를 참조하십시오.

clc
clear

n = 100.55;
s1 = "Value is";
s2 = 'kg';
n = [s1,n,s2];
s = join(n,'--')

출력:

s =

    "Value is--100.55--kg"

위의 출력에서 ​​공백 구분 기호 대신 입력 구분 기호가 출력에 추가된 것을 볼 수 있습니다. 주어진 행렬 또는 배열의 요소 사이에 구분 기호로 임의의 길이의 문자열 또는 문자 배열을 추가할 수도 있습니다.

Matlab의 sprintf() 함수를 사용할 수도 있습니다. 이 함수는 형식화된 데이터를 문자열 또는 문자 배열에 추가하는 데 사용됩니다. sprintf() 함수의 첫 번째 인수는 형식 사양이고 다음 인수는 문자열 또는 문자 배열에 넣을 변수입니다.

형식 사양이 큰따옴표를 사용하여 문자열로 정의된 경우 sprintf() 함수의 출력도 문자열이 됩니다. 형식 사양이 작은따옴표를 사용하는 문자 배열로 정의되면 sprintf() 함수의 출력도 문자 배열이 됩니다.

우리는 num2str() 함수의 경우 위에서 사용한 것과 같은 방식으로 형식 사양을 사용할 수 있습니다. 퍼센트 기호를 사용할 수 있습니다. 그 후에 필드 너비를 전달할 수 있고 데이터 유형을 전달할 수 있습니다.

예를 들어 sprintf() 함수를 사용하여 문자열에 다른 데이터 유형 변수를 추가해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

n = 100.55;
s1 = "Value is";
s2 = 'kg';
s = sprintf("%s %0.1f %s",s1,n,s2)

출력:

s =

    "Value is 100.5 kg"

위의 코드에서 문자열 데이터 유형에는 %s를 사용하고 부동 소수점 데이터 유형에는 %f를 사용했습니다. 또한 부동 소수점 숫자의 경우 유효 자릿수를 정의했습니다.

위의 코드에서는 문자열을 변수에 저장한 다음 sprintf() 함수에 전달했지만 함수의 첫 번째 인수에 문자열을 직접 작성할 수도 있습니다. 큰 문자열 변수의 경우 단순성을 위해 변수에 저장하고 sprintf() 함수 내부에 전달해야 합니다.

문자의 경우 %c, 정수의 경우 %d 등과 같은 다른 데이터 유형에 기호를 사용할 수도 있습니다. sprintf() 함수에 대한 자세한 내용은 이 링크를 확인하십시오.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - MATLAB String