Variable precision point for fprintf command set by user input
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (2)
Voss
il 2 Feb 2024
Modificato: Voss
il 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
Walter Roberson
il 2 Feb 2024
fprintf( fprintf(' %%10.%df'), precision), Ab(i,:))
4 Commenti
Walter Roberson
il 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()
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!