Matlab provides the different types of functions to the user; sprintf() is one of the functions that is provided by Matlab. Basically, sprintf() is a string variable and that is created in Matlab memory that means we can create the string variable by using the sprintf() instead of writing it into a text file. The working of the sprint() is the same as fprintf() but the only difference is that when we use fprintf() is used to write the data into a text file and by using sprint we can format the data string
string = sprintf(formatSpec, Array1,Array2,…….ArrayN) [string,error_message] = sprintf (formatSpec, Array1,Array2,…….ArrayN) string = sprintf (text)
There are multiple syntaxes available for sprintf() in Matlab as shown in the above syntax.
In the first syntax, we specify the data into array formats using the formatSpec formatting operator and that helps us to return the result into a string from the text. Here we also used Array1, Array2 for column order and it is formatted by using the sprint(). Notice here if formatSpec is a string then it returns the result into a string else the return result is a character vector.
In the Second syntax, we use error messages when our transaction is unsuccessful otherwise it shows empty error messages.
In the third line, we try to print the literal text such as \n and \t.
How sprint works in Matlab?
Now let’s see how to use sprintf() in Matlab as follows.
Formatting text is the main part of the sprintf() function. We can format the text as per our requirement by using the different input arguments and different data types. In Matlab, we have an option to format the text under control by using the sprintf() function as well we can use the formatting operator with the different conversion characters.
Sprintf uses different input arguments as follows.
Formatting of output we specified by using different operators. Here we use the formatSpec formatting operator and it includes text and special characters. Sometimes formatSpec uses the literal text at that time sprintf translation of all characters. The format of formatSpec is a single quote or string. Now let’s see the formatting operator in Matlab as follows.
Formatting Operator for sprintf in Matlab
Formatting operator uses % sign to start and with the conversion character compulsory. Instead of conversion characters, we can use the identifier, flag, and width, precision between the % and conversion characters.
Conversion Characters for sprintf in Matlab
Matlab provides the different types of conversion characters such as Integer signed, integer unsigned, floating-point number, and character or string. As per conversion characters we can use different characters such %d or %i for integer signed and when we have a %u that means integer unsigned characters like this we can use different conversion characters as per our requirement.
2 Numeric, character, or string array:
This is another input formatting type of sprintf in Matlab. For string array, character, and Numeric we can use different data types such as single, double, int8, int16, string, logical, etc.
3. Literal Text :
This is one more input text in Matlab but the difference is that; here we can use input text without any formatting operator that means without character vector or string scalar. The literalText uses two types of data types such as char and string.
Now let’s see some output arguments in sprintf as follows.
1. String format:
In this type, we use the formatSpec option to match the output formatted text.
2. Error message:
It is used to return character otherwise it returns the error message when a transaction execution is unsuccessful.
Now let’s see the different examples of the sprintf() function in Matlab for better understanding the sprintf() function as follows.
Now let’s see a simple example of sprintf() as follows.
A = sprintf('In Matlab%s', '!'); B = sprintf('Welcome %s', A);
In the above example, we try to implement how we can join two different strings by using the sprintf() function. In this example, we use two variables A and B and we assign some text to the A and B variable as shown in the above program. But notice here in the second line we try to merge the two words by using the sprintf() function. The final output of this program we illustrated by using the following screenshot as follows.
Now let’s see how we can represent the floating number by using the sprintf() function as follows.
X = 5/8; A = sprintf('%0.22E',X) B = sprintf('%5G',X) C = sprintf('%3f',X)
In the above example, we implemented a floating-point format by using %E, %G, and %f specifiers as shown in the above code. Here %E is used for the exponential value, %G is used in more compact notation such as 5.14 like this, and %f is used to represent fixed-point value. The final output of this program we illustrated by using the following screenshot as follows.
Now let’s see another example of the sprintf() function as follows.
data = sprintf('%f %.2G %f %.2E', pi*30*ones(1,4))
In the above example, we try to implement another example of the sprintf() function. In the above code, we use one function to implement the floating-point number. The final output of this program we illustrated by using the following screenshot as follows.
Now let’s try to implement text as a string array as follows.
formatSpec = "The two integer number: %d+%d %s"; Array1 = 5; Array2 = 10; Array3 = "present here with + operator"; A = sprintf(formatSpec,Array1,Array2,Array3)
In the above example, we implemented specified formatted text into a string array as shown in the above program. The final output of this program we illustrated by using the following screenshot as follows.
MATLAB fprintf() function is defined to write data as output either to a text file or to any result window. This function processed the data available in the real part of the matrix as well as the data given as any further matrix arguments having the flexibility of applying customization with the help of a defined format string and other name-value pair input arguments. This function can also be used to find the count for the number of bytes written. It can also be configured to throw an error message in case of invalid data operation is being called.
Syntax of Matlab fprintf
Here are the following syntax mention below
|This syntax is used to apply formats specified by the argument,format_Spec, towards all elements of arrays Arr1,…Arrn in respect to the order of the columns. The data gets written to the text file pointed by file_ID. Fprintf()incorporates the encoding scheme in the call forfopen().|
|This syntax is used to apply format on the input data and produces the results on the screen.|
|This syntax is used to return the count for the number of bytes that is being written by the function fprintf().|
For the function fprintf(),fopen operation can be used to obtain the file identifier file_id in 2 forms such as:
- In the form of standard output on the screen.
- In the form of standard error.
This argument, specified with formatting operators, is used to specify formats for the output field. This also includes special characters as well as any ordinary text.
This represents the character or numeric or arrays, can be of type a vector, scalar, matrix, or multidimensional array.
This output argument is used to store the count for the number of bytes written byfprintf() either to the input file or as an output string that is displayed on the screen. The supported data type is a scalar and determined using the character encoding.
Examples of Matlab fprintf
Given below are the examples of Matlab fprintf:
Example 1 :
M1 = [10.9, 9400]; M2 = [2.5, 5.6 ; ... 8800, 7700]; formatSpec = 'First data is %5.2f and second data is %7.3f mm\n'; fprintf(formatSpec,M1,M2)
%5.2f in the format_Spec input customizes the first value that of each row of the output as a floating-point number having a field width of five digits, and after the decimal point, two digits are considered.
Similarly, %7.3f in the format_Spec input customizes each row’s second value as a floating-point number having a field width of seven digits. After the decimal point, three digits are considered.
\n is the control character that is used to add a new line wherever necessary.
input = [5.04 13.34 5.26]; fprintf('%d\n',round(input));
%d in the format_Spec input caused the program to print all values defined in the vector, round(input), formatting them as signed integers.
Application of fprintf() operation
There are various use cases that are being achieved by using the function fprintf(). Such as
1. Reading tabular data from a text file
Fprintf() can be used to read the tabular data present in a text file without disturbing the tabular format. The function fopen is used to create file_ID for the text file.
File_ID = fopen('exp.txt','w');
frpintf() needs to be used twice: One to fetch the headers and the second command to fetch the data with respect to the headers.
fprintf(fileID,'%6s %12s\n','header1','header2',..); fprintf(fileID,'%6.2f %12.8f\n',dataheader1,dataheader2,….);
2. Finding the size of the content of the file
The fprintf() function can be used to find the size of the content present in the file by fetching the count of the number of bytes being written to a new file using the fprint() function.
The function fopen is used to create file_ID for the text file.
File_ID = fopen('newfile.txt','w');
The resultant count value gets stored in the variable nbytes
nbytes = fprintf(file_ID,'%6d %5d %6d %5d\n', Input)
3. Display Hyperlinks in Command Window
The function can be used to display a hyperlink in the form of a clickable link on the screen.
The variable url is defined to hold the url address, and the site carries the display text for the address. url = ‘https://www.myurladdress.com’;
site = 'My site name';
The url needs to be configured in html format in the fprintf() call.
fprintf('<a href = "%s">%s</a>\n',url,site)
%s in the format_Spec input is used to indicate the values of the variables url and site name in printable text format.
How can formatting be applied in the case of fprintf() operation?
A formatting operator is defined as having a percent sign, %, at the beginning, and a conversion character at the end.
Different conversion characters supported by fprintf such as:
%u- Supports Integer with unsigned-Base 10
%f- Supports Fixed-point notation to use a precision operator to the digits after the decimal point.
%s-Supports string array or character vector. In this case, the output text type is the same as theformat_Spec type.
Optional Operators of Matlab fprintf
The optional identifier such as field width, subtype operators, precisions, flags, etc., further contributes to formatting operation on the output text.
Field Width can be defined as the minimum number of characters that need to be available in the given input data to print.
Subtypes operators are used to printing a floating-point value with different base values such as its decimal, octal, or hexadecimal form. The subtype operator is the immediate precedes to that of the conversion character.
1. Format specifiers used for the reading functions such as fscanf() and sscanf() differ from the format specifiers used for the functions exhibiting writing operations such as sprintf() and fprintf(). The reading functions specifiers do not support a precision field whereas the writing function specifiers have incorporated the feature.
2. Format_Specfprintf() also supports the inclusion of additional text preceding to a percent sign, %, or following the given conversion character.
The text can be of two forms. They are:
- Any ordinary text string to print.
- Special characters can not be used as an ordinary text and hence needs to be defined in formatSpec, following a standard form of representation.
Single quotation mark (‘)- ‘’ Backslash (\)- \\