Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.1 - Français

Change language to:
English - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Aide de Scilab >> Sorties > mprintf

mprintf

converts, formats, and writes data to the main scilab window

printf

converts, formats, and writes data to the main scilab window (obsolete)

Syntax

mprintf(format,a1,...,an);

Arguments

format

a string providing the format to use to write all next arguments. The format follows -- as close as possible -- the C printf format operand syntax, as described in the printf_conversion page. UTF-8 extended characters and numbered placeholders "%n$.." are supported.

a1,...,an

Data to be converted and printed according to the format argument. Supported types: all numbers, booleans, strings. Only the real part of complex numbers is considered (current Scilab limitation).

Description

mprintf(format, a1, a2, ..) replaces placeholders provided inside the format string with values of a1, a2, .. converted according to each respective placeholder directive, and writes the result to the Scilab console.

If a1, a2, .. are arrays with multiple rows, they feed the format row by row: the format is used iteratively for every row of the (horizontally "concatenated") arrays, until the bottom of the least tall array is reached. Remaining rows of taller arrays (if any) are ignored. See examples.

If the total number of columns of a1, a2, .. is bigger than the number of placeholders in the format, then extra columns are ignored. If it is smaller, an error is yielded.

The mprintf function is an extended interface for C-coded printf.

Examples

I = (1:4)';
A = [26.93 ; 63.25 ; 40.51 ; 91.84];
B = [ 3.62 ; 15.04 ; 25.3  ; 48.19];
C = [ 4.37   28.06
     48.18   %inf
     41.48   %nan
     26.39   77.83];
Status = ["NOK" "NOK" "NOK" "OK"]';
Format = "Iteration %d: Results: A= %f   B= %2d%%  Status= %3s   C(1)= %g  C(2)= %e\n";
mprintf(Format, I, A, B, Status, C);
--> mprintf(Format, I, A, B, Status, C);
Iteration 1: Results: A= 26.930000   B=  3%  Status= NOK   C(1)= 4.37  C(2)= 2.806000e+01
Iteration 2: Results: A= 63.250000   B= 15%  Status= NOK   C(1)= 48.18  C(2)= Inf
Iteration 3: Results: A= 40.510000   B= 25%  Status= NOK   C(1)= 41.48  C(2)= Nan
Iteration 4: Results: A= 91.840000   B= 48%  Status=  OK   C(1)= 26.39  C(2)= 7.783000e+01

Supernumerary columns or rows are ignored:

A = [%T  %F  %T  %T  %F]';
B = [ 4.37   28.06
     48.18   %inf
     41.48   %nan ];
mprintf("OK? %s  Value: %4.1f\n", A, B);
--> mprintf("OK? %s  Value: %4.1f\n", A, B);
OK? T  Value:  4.4
OK? F  Value: 48.2
OK? T  Value: 41.5

Numbered placeholders "%n$.." allow reordering printed data with the format:

names = ["Peter", "Martha" "John"]';
ages  = [32 25 8]';
mprintf("%2$6s is %1$d-year old.\n", ages, names);
--> mprintf("%2$6s is %1$d-year old.\n", ages, names);
 Peter is 32-year old.
Martha is 25-year old.
  John is 8-year old.

See also

  • printf_conversion — mprintf, msprintf, mfprintf C-format specifications
  • disp — displays variables
  • write — write in a formatted file
  • percentio — protected variable providing ids of the standard input and standard output
  • percentchars — Selected sets of Unicode characters

History

VersionDescription
6.1.0 Numbered placeholders "%n$.." are supported in the format.
6.1.1 Input data can be boolean.
Report an issue
<< disp Sorties msprintf >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:33:08 CET 2022