필터 지우기
필터 지우기

Variable precision point for fprintf command set by user input

조회 수: 5 (최근 30일)
Nathan
Nathan 2024년 2월 2일
댓글: Walter Roberson 2024년 2월 2일
I am trying to create a variable precision point through an user input to control how many decimal places are shown when displaying the results from the elements of a matrix.
This code is what I current have but would like to make the precision (currently at 10) adjustable:
when I try to replace the .10 with * and set a variable it messes up my code:
I am new to Matlab and would appreciate any help on this so I can input a values to dispaly results to any decimal place value.

답변 (2개)

Voss
Voss 2024년 2월 2일
편집: Voss 2024년 2월 2일
Here's what the documentation for fprintf has to say about this:
"When you specify * as the field precision operator, the other input arguments must provide both a precision and a value to be printed. Precisions and values can be pairs of arguments, or pairs within a numeric array."
So the precisions and values must be in pairs. Example:
M = [1 2 3 4; 5 6 7 8];
precision = 10;
[nrows,ncols] = size(M);
args = zeros(1,2*ncols); % row vector of precision/value pairs
args(1:2:end) = precision; % 1st, 3rd, 5th, etc., elements are the precisions
for ii = 1:nrows
args(2:2:end) = M(ii,:); % 2nd, 4th, 6th, etc., elements are the values from M
fprintf(" %10.*f",args)
fprintf("\n")
end
1.0000000000 2.0000000000 3.0000000000 4.0000000000
5.0000000000 6.0000000000 7.0000000000 8.0000000000

Walter Roberson
Walter Roberson 2024년 2월 2일
fprintf( fprintf(' %%10.%df'), precision), Ab(i,:))
  댓글 수: 4
Nathan
Nathan 2024년 2월 2일
that worked perfectly as well. Thank you. I'll have to look into the code you created to understand the nesting and fprint/sprint command.
Walter Roberson
Walter Roberson 2024년 2월 2일
It is equivalent to
Format = sprintf(' %%10.%df', precision);
fprintf(Format, Ab(i,:));
The sprintf() computes the format to be used by the fprintf()

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by