다락방

[matlab] disp / fprintf / sprintf 차이

humming_stereo 2023. 2. 23. 13:14

매트랩을 공부하던 중 의문이 생겼습니다.

 

disp, fprintf, sprintf 함수는 모두 기본적으로 명령창에 입력한 정보를 나타내는 명령어입니다.

 

찾아보니 각 함수마다 사용방법과 출력 방식에 차이가 있었습니다.

 

* 검수자 : 티비보는 무지 님


1. disp

  • disp는 단순히 명령 창에 변수 또는 문자열의 내용을 표시
  • 큰 따옴표 / 작은 따옴표(string / char)에 따라 출력 형식 차이
    → string/char는 문자열 결합 방식의 차이로 인해 결과값의 차이가 나게 된다.
  • 자동 줄바꿈 적용
name = 'Duna';
age = 15;
x = [name,' is my dog, he is ',num2str(age),' years old'];
y = [name," is my dog, he is ",num2str(age)," years old"];
disp(x)
disp(y)


2. fprintf

  • 형태
    fprint(str, var1, var2)
  • 차이점
    • 지정된 텍스트를 명령 창에 직접 출력
    • 세미콜론(;)의 유무와 상관없이 출력
    • 기본적으로 자동 줄 바꿈이 적용되지 않기 때문에 문자열 끝에 '\n'을 붙여준다.
    • 출력값을 변수에 저장 / 출력 시, 텍스트가 아니라 숫자가 출력.
      → 출력에 쓰여진  byte 수를 반환
    • fprintf - 명령 창에 직접 출력
format = '%s is my dog, he is %d years old\n';
name = 'Duna';
age = 12;
fprintf(format,name,age);

fprintf('hello\n')
fprintf('hello\n');
x = fprintf('hello\n')
disp(x)


3. sprintf

  • 형태
    sprintf(str,var1,var2)
  • 차이점
    • 지정된 텍스트의 변수 생성
    • 자동 줄 바꿈 적용
      → 윗줄 글은 명령창을 기준으로 설명
      → 둘의 출력 방식에 근본적으로 차이가 있기 때문에 줄바꿈이 여부를 설명하기에는 애매하다. 
       sprintf - ans 변수에 저장 후 ans 변수 출력
    • 세미콜론(;)에 따라 출력 값 표시 여부 지정 가능
    • 출력값을 변수에 저장 / 출력 시, 텍스트 문자열이 출력.
sprintf(format,name,age)
 
sprintf('hello\n')
sprintf('hello\n');                       % 출력 생략
y = sprintf('hello\n')
disp(y)


  • fprintf / sprintf공통점
    • 문자열 형태를 지정하고 양식에 맞춰 문자열을 출력하는 방식
    • 텍스트 형식 지정 시, 큰 따옴표와 작은 따옴표 간의 차이 X
    • %d : 정수
      %f : 실수
      %s : 문자열


추가

매트랩은 C 기반 언어이기 때문에 관련 같은 함수에 관환 내용 첨부

  • fprintf
    • 파일 스트림에 서식화된 문자열 출력 함수
  • sprintf
    • 문자열 서식 및 매개변수를 사용
    • char 형 변수 출력
    • 배열로 이루어진 변수에 일련의 서식 문자열 입력 함수
      → 파일이나 화면에 출력하는 것이 아니라 변수에 문자열을 출력

참고 사이트

'다락방' 카테고리의 다른 글

[winscp, filezilla ] 외부 서버를 접속 데이터 다운로드 프로그램 (공사중)  (0) 2023.03.15
원노트 구분선  (0) 2023.02.06
[win + e 단축키] 설정 바꾸기  (0) 2023.01.25
chrome 단축키  (0) 2023.01.25
window 단축키  (0) 2023.01.25