Borrar filtros
Borrar filtros

Variable precision point for fprintf command set by user input

5 visualizaciones (últimos 30 días)
Nathan
Nathan el 2 de Feb. de 2024
Comentada: Walter Roberson el 2 de Feb. de 2024
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.

Respuestas (2)

Voss
Voss el 2 de Feb. de 2024
Editada: Voss el 2 de Feb. de 2024
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 el 2 de Feb. de 2024
fprintf( fprintf(' %%10.%df'), precision), Ab(i,:))
  4 comentarios
Nathan
Nathan el 2 de Feb. de 2024
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 el 2 de Feb. de 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()

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by