Variable precision point for fprintf command set by user input
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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.
0 Kommentare
Antworten (2)
Voss
am 2 Feb. 2024
Bearbeitet: Voss
am 2 Feb. 2024
"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
2 Kommentare
Walter Roberson
am 2 Feb. 2024
fprintf( fprintf(' %%10.%df'), precision), Ab(i,:))
4 Kommentare
Walter Roberson
am 2 Feb. 2024
It is equivalent to
Format = sprintf(' %%10.%df', precision);
fprintf(Format, Ab(i,:));
The sprintf() computes the format to be used by the fprintf()
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!