680 likes | 703 Views
Learn how to prompt user input, create output using disp, fprintf, and sprintf functions, and format output in MATLAB. Understand user-defined input, output options, and sending formatted output to a file.
E N D
Objectives After studying this chapter you should be able to: • Prompt the user for input to an M-file program • Create output using the disp function • Create formatted output • fprintf • sprintf • Use graphical techniques to provide program input • Use cell mode to modify and run M-file programs
Section 7.1User Defined Input • To this point we have “hard coded” the values of variables into our M-file programs • The input function allows us to prompt the user to enter a value
The input function is used in an M-file program to prompt the user to enter a value The prompt is displayed in the command window
Input accepts a variety of data • Scalars • Matrices • enter inside square brackets • Character strings • enter inside single quotes • Or… specify string input with ‘s’
Run this program twice more – once with numeric input and once with character input Matrix input Character input
Section 7.2Output Options • Enter the name of a variable • Use the disp function • Use the fprintf function • Use the sprintf function
disp The display (disp) function can be used to display the contents of a matrix without printing the matrix name
Strings are really arrays of character information The result is a character array
You can combine disp functions to create meaningful output from an M-file program, but the result of each disp function is on a separate line.
Since the disp function only takes one input, you must combine arrays to make more complicated output • Use the num2str(x) function to change numeric information to a string disp(['The values in the x array are: ' num2str(x)])
Although these characters look like numbers, they are interpreted by the computer as part of a character array – they no longer have any numeric meaning
Hint • If you want to include an apostrophe in a string, you need to enter the apostrophe twice. • If you don’t, MATLAB thinks the apostrophe terminates the string. For example: disp('The moon''s gravity is 1/6th that of the earth')
This MATLAB program mimics a conversation, by using the input and disp functions. Watch the interactions as it runs in the next slide
Formatted Output • fprintf gives you more control over your output than the disp function • You can combine text and numbers • You can control how many digits to display, and their position
fprintf Arguments • format-string • includes place holders and formating information for numbers • list of matrices
fprintf • The fprintf command is more flexible than the disp command, and allows you to put both variables and text onto the same line
8 total spaces2 after the decimal pointfloating point format Place holder for your variable value Variable
X is a matrix /n is a carriage return
This example was created on the student edition of MATLAB – Notice that the prompt is EDU Despite the way it looks, the computer always considers a matrix as one big list, working down one column at a time
Hint • One of the most common mistakes new programmers make is to forget to include the f in the placeholder sequence. The fprintf function won’t work, but no error message is returned either.
Hint • If you want to include a percentage sign in an fprintf statement, you need to enter the % twice. If you don’t, MATLAB thinks the % is a placeholder for data. For example: fprintf('The interest rate is %5.2f %% \n', 5) results in: The interest rate is 5.00 %
Here’s another example that uses the input, disp and fprintf functions • Write a program in an M-file that creates a table of degrees to radians • Prompt the user to enter the table starting value, an increment between values, and a final value.
Sending formatted output to a file • First create and open an empty output file, and assign it a file identifier • Add the file identifier to the first field in the fprintf function
flag that identifies this as a file to which we can write File identifierany legitimate MATLAB name will do File name Create and open an output file and assign it a file identifier
The result in the command window is the number of characters in the output string The output string is sent to the specified file Add the file identifier to the first field in the fprintf function
Double clicking on the file name in the current directory window causes an editing window to open – which displays the contents of the file
sprintf • The sprintf function is similar to fprintf • Instead of just sending the output to the command window, sprintf assigns the output a name, and then sends it to the command window
The result from fprintf is a character count The result from sprintf is the actual string Why is this useful? sprintf could be used to specify a string that is then used in a graph annotation
7.3 Graphical Input • You can enter ordered pairs of x and y values, by picking them off a graph • ginput
ginput • [x,y] = ginput • Retrieves a set of ordered pairs from the graph everytime the enter key is struck • [x,y]=ginput(n) • Retrieves n ordered pairs
Floating Crosshair When the ginput function is executed, a floating crosshair appears on the graph. Each time the enter key is struck, MATLAB picks the corresponding points off the graph
Section 7.4More Cell Mode Features • Publish • Value Manipulation
Publish Icon M-files that use cell mode, such as this one used to solve homework problems from chapter 5, can be published using MATLAB’s publish feature
To publish in a different format, such as Word or PowerPoint, change the publish configuration From the file menu select File→Publish Configuration for…
Value Manipulation Tools Increment and decrement value Divide and multiply value This is the number that is changed, because of the cursor placement
Section 7.5Reading and Writing Data from Files • Some common types of data files are • dat • txt • xls • jpg
Import Wizard • Use the import wizard to determine the data type and to suggest ways to represent the data • Launch from the file menu • From the uiimport funtion • uiimport(‘filename.extension’)