Data is saved in the form of arrays. When we display the data, it comes in the form of an array, and that may not be as representable as always. So, there are some formatting operators available in the MATLAB to convert the data to text and format the output as per our requirements.
>> t t = 'Displaying 3 random numbers: 1)0.957167 2)0.49 3)0.800280'
Fields of the Formatting Operator in MATLAB
The % percent sign always leads the formatting operator. A formatting operator can have a maximum of six fields-the conversion character, subtype, precision, field width, flags, and numeric identifier.
The conversion character is an only required field, and it specifies the notation of the output. The conversion character is denoted by a single alphabetical character and appears last in the format specifier.
>> res res = "c d d 100 e 1.000000e+02 E 1.000000E+02 f 100.000000 g 100 G 100 o 144 s d u 100 x 64 X 64"
The subtype field is represented by a single alphabetic character that comes immediately before the conversion character. The conversion characters %o, %u, %x, and %X treat data input as integers, without the subtype field. So, use one of the following subtype specifiers to treat data input as floating-point values and convert them to octal, decimal, or hexadecimal representations.
>> res res = 'before using subtype: 100 after using subtype: 1120403456'
The precision field is denoted by a non-negative integer that immediately comes after a period (dot). It is used with %f, %e, and %E operators and indicates the number of digits to display to the right of the decimal point.
>> res res = 'output without and with precision field: 94.247780 94.25 9.424778e+01 9.42e+01'
The field width is a non-negative integer and comes with or without decimal point precision. As the precision field specifies the number of digits after the decimal point, the field width specifies how many numbers of total characters should be displayed in the output. If the field width is higher than the number of characters in the input data, then by default, the output text is padded with space characters.
>> res res = 'output without and with field width: |3.033000e+02| | 3.033000e+02| |303.300000| | 303.300000|'
The flags field controls the additional formatting of the output. The characters used for the flags describe mainly the spacing, padding, and text alignment.
Example: -Right and left justify:
>> ans ans = 'right-justify:| flags| left-justify:|10.00 |'
Example: - Padding with space and zero:
>> b b = 'padding with space: | 20.00| padding with zero: |0000020.00|'
Example: -Pound Sign:
>> a a = '10.'
The output functions such as sprintf prints the output in the same sequence as it takes input arguments. So, use the identifier to produce the output in a custom specified order. Identifiers are the integer values and come immediately after the % percent sign following by a $ dollar sign.
>> t1 t1 = '1st 2nd 3rd'
Custom order using identifier
>> t2 t2 = '3rd 1st 2nd'
Displaying Special Characters in the Output
Special characters are meant to serve particular purposes, so these cannot be used as ordinary text. To make special characters as part of the output text, use specific character sequences.
Rules for setting Field Width and Precision
The formatting operators follow specific rules for formatting the output text. And field width & precision define how a number should be displayed in the output. Let's examine with an illustrated example:
Field Width and Precision, Outside the Format Specifier
To specify the field width and precision outside the format specifier, use an asterisk (*) in place of the field width or precision fields of the formatting operator. The place of the asterisk should match the place of the number specifying the fields in the input arguments. Lets' understand with an example:
>> t3 t3 = ?123.456000 10.235 3.14?
Explanation of the above example:
Specifying Identifiers in place of Field Width and Precision
We can specify numbered identifiers for field width and precision, and the value for the identifier comes from input arguments.
>>t4 = '123.456000 12.3659 3.14'
Lets' examine the above example: