When you perform an experiment, you can never be sure what sort of result you’ll receive. That means your MATLAB scripts will need to have some flexibility in handling your data. In this video, learn how to use if and if-else statements to handle different cases.
- [Instructor] When you perform an experiment, you can never be sure what sort of result you'll receive. That means your MATLAB scripts will need to have some flexibility in handling your data. In this movie, I will show you how to use if, and if else statements to handle different cases. I'm working in a blank command window, but what I really need is a code window or a script. So I'll go to the home tab at the user interface, and click the new script button. I can also press control + n. In the code editor, I need to define the function that will calculate the value that I want based on if then statements.
So I'll start with a function name, so I'll call it function and then ct. That will be the output variable, equal and that will be cooltime, C-O-O-L-T-I-M-E, and I won't pass at any arguments. I'll just wait for input from within the function. So I will type in open and close parentheses with nothing between them, and press enter. So the idea is that I want to evaluate the amount of time it took glass, heated to a certain temperature, to cool by 20 degrees.
I will assign that value to a variable called val one, so I'll press space twice to give myself a little differentiation between the levels in my code. Val one equal, and it will be equal to the input with the prompt time in seconds for the glass to cool 20 degrees, followed by a colon, and a new line character. Then I will close the string and then close the input argument, and everything looks good.
My string is in magenta like it should be. Press enter and I'm on the next line. Now I will just check for one condition, and that is if the value is greater than 25 seconds. So I'll start with if, a space, val one, which again is the time it took to cool, is greater than 25, then I'll press enter. Note that MATLAB is providing some indentation for me. If the value is greater than 25, I want the script to display a message that the time is above the projected range.
So I will type disp, which is for display, left parenthesis, then a single quote, and the prompt will be That time is above the projected range. Follow that with a period, a single quote, and a right parenthesis to close out, and enter. Now I can end the if statement by typing end and MATLAB knows which statement it corresponds to, so it lines it up. Press enter. Type end again.
That goes with function. I'll press enter one more time, and now I can save, so I'll press control + s to save, and I see that the name of the file Be Cool Time, which will be the name of the function. I'll leave it there. Click save, and it appears on the left in my current folder panel. Now my function is ready to go, and I can close the editor window, and I'm back in my command window. Now to run the function I just created, all I need to do is type its name, so I'll type cooltime.
Again, I don't need to pass in any arguments, so I'll press enter, and I get my prompt. So my test is for 25, so I'll type in 26 and enter, and it says that the time is above the projected range. Great, that worked well. Let's try it again, cooltime, enter, and now let's say 19, and it just returns the value. So there are a couple of things that I need to fix. The first is that I see the value, and second I don't get any sort of indication if a value is correct, or if it's too low.
To make those changes, we need to go back into the cooltime file, and edit the text. So I'll go over to the current folder, and double click cooltime.m. All right, I've got my edit window back. The first thing I will do is to remove the duplication of val one. In other words, I don't want it displayed, so I'll go to the end of the first line, the input line, and type a semicolon. That suppresses the output. Now I can add other elements, other tests using else statements.
I'm going to leave val one greater than 25 saying that the time is above the projected range, the same. Now I will click after that displays, right parenthesis and enter to get a new line, and I will type the else keyword, E-L-S-E, and you can see that MATLAB is working my spacing for me. So let's check to see if the value is greater than 10. So I'll say if val one is greater than 10 and enter, then disp for display, left parenthesis, single quote, that time is within the expected range, followed by a single quote, and a right parenthesis.
I have one more case to account for, so if the value isn't greater than 25, but it is greater than 10, that means it's in the expected range, but we need to know what to do if the value is less than 10. So I'll type in another else, then enter, and that will be display, left parenthesis, single quote, that time is below the expected range, followed by a single quote, and a right parenthesis. So again, what we're doing is we're checking for the values greater than 25.
If that's the case, than it's above the projected range. If it's less than 25 but above 10, it's within the expected range, and every other value which is smaller than 10 is below the expected range. So I've got my elses altogether, and I can type end, which goes with that if, and let me see, I have one, two, three. Let's see, what I'm doing is I'm looking for mismatched or unterminated ifs, and it looks like everything is correct, so I'll press control + s to save, and we'll find out soon enough if I didn't match everything up, so I will click the close editor button, and type cooltime again, enter, time and seconds.
Now let's go with 26 and enter. It's above the projected range, cooltime again, between 19. The time is within the expected range. Cooltime one more time, and this time the time in seconds will be five, and we see that the time is below the expected range. There are couple of things to note about these scripts. The first is that I didn't do any error checking, so I didn't make sure that the values coming in were in fact numbers. And also, if you're checking if one number or value equals another, remember to use two equal signs.
That's how you check for equality in MATLAB. A single equal sign assigns one value to a variable.
- Defining variables and contains
- Exploring operators
- Summarizing with built-in functions
- Generating random numbers
- Defining vectors and matrices
- Accepting input in scripts
- Writing and reading data from external files
- Creating custom functions
- Using conditional logic
- Repeating operations with loops
- Working with text strings
- Plotting data and function output
- Formatting, saving, and printing plots
- Using statistical and matrix functions