나는 다음과 같은 생산하기 위해 노력하고 자신의 값의 변수 이름과 num2str 표현을 표시하려고는 : x와 y의 새로운 값은 DISP 및 num2str 명령을 사용하여, 각각 -4 7입니다. 이 disp ('x와 y의 새로운 값은 각각 num2str (x)와 num2str (y)입니다.')를 시도했지만 적절한 값 대신 num2str을주었습니다. 어떻게해야합니까?내가 MATLAB
답변
콜린과 마찬가지로 num2str
을 사용하여 숫자를 문자열로 변환하고 모든 문자열을 수동으로 연결하고 최종 결과를 disp
에 넣는 옵션이 있습니다. 불행히도 은 매우입니다. 특히 인쇄 할 숫자가 많으면 어색하고 지루합니다.
대신에 sprintf
의 힘을 사용할 수 있습니다. 이것은 MATLAB에서 C 프로그래밍 언어와 매우 비슷합니다. 이것은 예를 들어, 짧은, 더 우아한 문을 생성합니다
disp(sprintf('The new values of x and y are %d and %d respectively', x, y))
당신은 변수가 형식 지정자를 사용하여 표시되는 방법을 제어 할 수 있습니다. x
정수가 필요하지 않은 경우 예를 들어, 대신 %d
, 예를 들어, %.4f
를 사용할 수 있습니다.
편집 : Jonas가 지적한 것처럼 disp(sprintf(...))
대신 fprintf(...)
을 사용할 수도 있습니다.
시도 : 그들은 코드를 더 읽기 쉽게 이럴
disp(['The new values of x and y are ', num2str(x), ' and ', num2str(y), ', respectively']);
당신은 실제로 너무 쉼표를 생략 할 수 있지만. 다음 함께 하나의 문자열을 형성하기 위해 5 문자열을 연결해,하고 내가 여기했던 그런데
는 disp
기능으로 그 하나의 문자열을 공급. 숫자 행렬에 사용할 수있는 구문과 동일한 구문을 사용하여 문자열을 본질적으로 연결했습니다 (예 : [x, y, z]
). 내가 이것을 할 수있는 이유는 matlab에 내부적으로 숫자 행 벡터로 문자열을 저장하고 각 문자는 요소를 나타내는 것입니다. 따라서 위의 작업은 본질적으로 수평으로 5 개의 숫자 행 벡터를 연결합니다!
하나 개 더 포인트 : MATLAB 문자열로가 아닌 함수로 num2str (X)를 처리하기 때문에 코드는 실패했습니다. 결국, 함수 호출을 사용하여 이것을 평가하는 것이 아니라 "num2str (x)"를 인쇄하려고 합법적으로 할 수 있습니다. 내 코드에서 첫 번째, 세 번째 및 다섯 번째 문자열은 문자열로 정의되는 반면 두 번째 및 네 번째는 문자열로 평가되는 함수입니다.
- 1. 내가 MATLAB
- 2. 내가 좋아하는 행렬이 MATLAB
- 3. 내가 파일에서 가져올 MATLAB
- 4. MATLAB 오류 다음과 같이 내가, 내가 명령 줄에서 호출하여 실행하려고하고있어 작은 MATLAB 기능을 가지고
- 5. MATLAB에서 내가 열거 타입을 정의 MATLAB
- 6. 같은 내가 MATLAB 클래스를 생성 한
- 7. MATLAB : 내가 분산을 플롯하기 위해 노력하고있어
- 8. 내가 파일에서 데이터를 읽을 textscan을 사용하고 MATLAB
- 9. 내가 MATLAB 프로그래밍에 새로 온 이미지 수집
- 10. 내가 식별 할 수없는 matlab 함수의 실수
- 11. MATLAB
- 12. MATLAB
- 13. MATLAB
- 14. MATLAB
- 15. MATLAB
- 16. MATLAB
- 17. matlab
- 18. MATLAB
- 19. MATLAB
- 20. MATLAB
- 21. MATLAB
- 22. MATLAB
- 23. matlab
- 24. MATLAB
- 25. 방지 MATLAB은 내가 종종 같은 것을 사용하여 MATLAB 명령 창에서 기존 MATLAB 파일을 열려고 시도합니다
- 26. MATLAB 내가 UINT16 이미지 모음에서 AVI 동영상을 만들하기위한 것입니다 간단한 MATLAB 순서가 16 개 비트 이미지
- 27. 어떻게 MATLAB
- 28. MATLAB : 엑셀
- 29. MATLAB 기능이
- 30. Matlab - 회귀
한 아주 깔끔한. 아마 :-) –
@ColinTBowers 지금부터 일을 이런 식으로 일을 시작합니다 대신 DISP'의 (sprintf와 (...))', 당신은 또한'는 fprintf (...)를'사용할 수 있습니다. 적은 타이핑 : – Jonas
@Jonas +1, 나는 그것을 나의 대답에도 넣을 것이다. –