Introduction to MATLAB
Overview
Are you working with engineering or scientific data? Trying to develop an algorithm or model, create a report, or just gain some insights? Join us for this session where we will show how to use the high-level MATLAB language and interactive tools to solve an example problem.
Highlights
Through product demonstrations, you will learn how to:
- Import data into MATLAB
- Preprocess, analyze, and visualize data
- Capture and document your work in a script
- Create interactive scripts and applications to share with others
About the Presenters
Kevin Cohan earned a B.S. in Electrical and Computer Engineering from Clarkson University and an M.S. in Electrical and Computer Engineering from the University of Massachusetts, Lowell. Since 2006, he has been a technical marketing manager at MathWorks and focuses on MATLAB and other technical computing products. His earlier career includes roles as a product marketing manager at Mentor Graphics and hardware design engineer at Raytheon's Missile Systems Division.
Heather Gorr holds a Ph.D. in Materials Science Engineering from the University of Pittsburgh and a Masters and Bachelors of Science in Physics from Penn State University. Since 2013, she has supported MATLAB users in the areas of mathematics, data science, deep learning, and application deployment. She currently acts as a Senior MATLAB Product Marketing Manager, specializing in data science, AI, and integrating MATLAB and Python code. Prior to joining MathWorks, she was a Research Fellow, focused on machine learning for prediction of fluid concentrations.
Recorded: 19 Jul 2022
Hi, everyone. Welcome to today's webinar on Introduction to MATLAB. My name's Heather. I'm in the MATLAB product marketing team, and I work specifically with data science and AI kinds of problems and helping users with those kinds of problems. My background is in physics and machine learning through that process during my PhD. And I use MATLAB, and that's how I was recruited, and I continue to use MATLAB for all these things that I mentioned before. And I'm joined by Kevin today.
Thank you, Heather. My name's Kevin Cohan, welcome, everyone. I work on the same team as Heather, and my primary responsibilities are kind of teaching people about what MATLAB is and how they can best apply it to solve engineering and scientific problems. Prior to joining MathWorks, I had a number of different roles, including hardware design, as well as being an application engineer and a product marketing manager at Mentor Graphics. So welcome, everyone.
Thanks. All right. Got a lot to talk about today. So I guess, Kevin, do you want to kick us off with what we're going to learn?
Sure. So as the title indicates, what we're trying to do today is give you an introduction, and we'll do that by kind of providing a high-level overview and then we'll step through an example. And as we go through it, Heather and I will both point out some tips and tricks and things that will help you as you're getting started and trying to learn how best to apply MATLAB in your work.
Perfect. Sounds great. So I think we should get started by my absolute favorite way to get started, which is using the documentation. Really, I think this is one of the best ways-- just think about the problem that you're trying to solve, and there are so many examples to get started with.
Here, we're just opening the MATLAB documentation from the MathWorks site. And you can even sort-- just kind of focus on those examples. In our case, we're going to be doing a lot of data processing, data visualization. So we probably pick something along those lines to get started. You can see all the different kinds of things you could try or start with and adapt.
So I guess we'll focus on-- well, maybe some plotting. I know we're going to be spending a lot of time on that today. This is a good one. This is this is one of Kevin's favorites, the common 2D line plots. So we'll go with that one, it gives us some good starting points. So one thing right away you notice, I don't even need to have MATLAB installed, I can just open it in the browser.
So I do happen to have MATLAB Online. I have a MathWorks account through that. So it'll open in MATLAB Online for me. But just another kind of pointer, you don't even need to have installed or downloaded anything to try things out right in your browser. And so that's true for a lot of the examples to get you started.
Of course, if you do have that MathWorks account and MATLAB, you can use MATLAB Online, pretty much similar to what you're going to see in the desktop. We'll go through this-- I think this is a great time to introduce all the different things that you might come across. So firstly, this example is a live script.
And so this is-- it contains the documentation, the code, the results, everything is together. So if you-- I'm going to just hit this run-- big Play button. And it's going to run the entire script. We'll talk more about the different options for how to run that, but at least we'll have some results to talk about.
So I really like this example because it does have a lot of things even just from the very beginning, including the first thing that we're doing, the very first line of code is creating a vector. And so that's one of the main things to think about when you're getting started in MATLAB, is Matrix Laboratory, everything's a matrix, even a scalar is one-by-one. So that's something to always think about. And we're using the colon operator to create that vector with a certain spacing. So it's something you'll see a lot in MATLAB.
And same with culling math on that vector, we're going to-- basically you're culling this just like you would a math equation. So that's kind of the functional syntax that you'll get used to. So your sine x squared, plotting a plot, parentheses, x, comma, y. So just to give you an idea of what you'll see. Anything else we should point out here, Kevin, before we move on?
I would just say that as you execute the code, you get the results right there. And I guess on the right in the workspace browser, you probably notice when Heather ran the code the variables that got created show up over there. And we'll-- as we step through our example, we'll be using that as well.
Exactly.
And by we, I mean Heather.
Well, it's easier to share one screen at a time. All right. So that kind of gives you at least a little bit of a feel for things. We'll talk about a lot more, I think, as we go through our example. It'll make a lot more sense to relate it back to our example. So let's talk about that example, I guess. Kevin, do you want to give us an overview?
Yeah. Yeah, let me step through. So one thing we often do when we're providing a product demonstration is just frame it around a pretty generic workflow that we call the tech computing workflow. It starts with accessing your data. And this could be data from a file, data from a software application, it could be a database, it could be data by connecting to hardware.
And once you've got that data, you typically want to operate on it in some way. Oftentimes it's exploratory-type phase. Could be data analysis and modeling, it could be that you want to create a program or a script or even an application. And then once you've done all your work, you then typically want to share it with someone. And oftentimes that could be as a static document that just represents your work, or it could be that your work is part of a bigger project. Perhaps a larger design. And oftentimes you need to integrate that with other languages.
And then, of course, you want to replicate that work. So we're always looking for ways to automate that work. So today, we'll show how this workflow can be used inside of MATLAB for a particular example. So the data we're using is some cyclone data that was captured by the Japan Meteorological Agency that spans an 11-year period, and this data is available in our documentation.
And as we step through the example, we're going to start by just trying to import the data, and then we want to do some exploration. We'll visualize it, pre-process it. And some very specific things we'll look at are the various tracks that different storms take, how severe they are compared to one another, and do some summary statistics to do some of those comparisons.
And we'll show you how you can take work and analysis like this and share it as a report. And if time allows, we may even try and develop a predictive model. So that's a high-level view of what Heather will show as she steps through MATLAB. So why don't you take it away, Heather?
Sounds good. All right, let's get to it. So I will open up the desktop MATLAB. Very similar to what you saw with MATLAB Online, just to kind of give you a sense of the different ways that you could use MATLAB. So first thing we want to do is import the data like Kevin was mentioning. In this case, we have this as a file. So it's just a CSV file in the same directory that I'm in. This is also MATLAB Drive. It was the same directory that I was in online. It's very convenient.
So I just double-clicked, and this opens up the Import tool. This is awesome for these kinds of workflows where you have a file and you really want to get a sense of what the data are before you bring it in. So we have the name of the storm, the date, and then some numeric information about it.
Before we just go ahead, we should pause for a moment and talk about the different options we have here. In this case it's more like a spreadsheet. So a table is a really natural data type. We'll talk a lot more about this as we go along. But Kevin and I use this all the time, because a lot of the data that we tend to analyze are in this orientation where you can have different data types together.
These look good. We'll think about the date, I think, later on, that looks good for now. But just to point out, you could adjust these individually as well. So I'm going to hit the big green checkmark. I like the nice size of the thing that I'm supposed to use. And then before we go take a look at that, I wanted to point out something that we'll be seeing a lot throughout our example, which is the ability to generate code, where you can do some of these things interactively using the apps, using these nice tools you can just kind of point and click, and then you can generate the code afterwards.
So we will just generate a function. We don't even really need to think too much about it. If you want to learn, you can. But we could save this now and then use it whenever we want to import the next one. We have another giant amount of data sets for all of the storms. So I had already saved it, so I'm going to just close it now, but that's kind of the process here.
All right we've got some data in MATLAB now. Let's take a look. So Kevin had mentioned this before, and notice, the workspace now has something in it, and that's where our data lives. And if I double-click, that brings up our Variable Editor. So this is really similar to kind of working with a spreadsheet. One of the things we always like to do is use the plotting capabilities. Looks good, but really a good way to see it as to plot.
So a map seems like a good one for this. And if you take a look at the dropdown here on the Plot tab, these are all the different plots I could use with data that I selected. And so this will change if I select different data. You can mouse over and get some idea of what the commands are like and what it does.
So let's go with the geo plot. This keeps coming up over on my other screen. All right. And that looks pretty good. So that's the track of one cyclone. Looks about what we wanted. Oh, and you notice here that it's actually printing it out on the screen. So again, in that same spirit of what we do interactively is maintained somewhere else.
Yeah, that's a great way to kind of get familiar with the syntax as you're working.
Yeah, definitely. Even something like, for example, indexing. So let's say I wanted to just create a subset of this data. So I'm just going to create a small table. So I wanted to do that mostly because-- so you can see the different things that you could do within the Variable Editor. You could type-- change the data, lots of different options from the dropdown.
But it also tells you how to index or how to access the data. And so like Kevin mentioned before, that really helps you learn as you're going along. And so this also-- helps us remind-- or helps remind me to talk about indexing. So I'll go ahead with my usual favorite magic example. So this is just a magic matrix. And also, there are many, many functions that you can use to create different types of matrices based on what you need. This is just one example of them.
So we generally use row-column indexing. So if we want the first element-- so we want 17 right there, that first one. We want the first row, first column. And this also reminds us that MATLAB starts with 1 whenever we're counting. So let's do something a little more interesting. Let's get a couple more. Also note that I was using the up arrow to go back through my last command.
So let's try to get the first and the third rows. So mostly I wanted to do that to show you that you could pass in a vector that represents which ones you want. So kind of leading towards what you saw from that last example, let's say I wanted to get all of those rows from that first column. So I could do something like this. One colon, end. Well, first I could do 1, colon, 5, that also works. But end as a keyword that will go to the end, obviously.
And even better, there is a shortcut that you'll see quite a lot. And if you want all-- I think of it as all columns, all rows, you can just use the colon operator itself. So that's kind of the quick, dirty indexing introduction just based on a lot of the things that you'll see that's what's going on. So same thing for the rest of the example, I guess. It's probably--
Oh, this table is one thing I should mention since we did talk about it. If it has the name, you can just use the name, no problem. You can use the indices or the names.
Oh, that's a good point.
Yeah. So that's nice and convenient. And again, the output helps you learn. So we've done a couple of things, I think, aside from our indexing lesson, we probably should start capturing some stuff. Let's go-- maybe go back to our plot. What do we do here? We did a nice geo plot. That's where we were. All right. So that was looking good.
And we always like the live scripts. Kevin and I use those a lot for examples. So we'll just create a new one just to kind of show that process. This is great for, like we showed before, keeping the documentation, putting everything together, just math equations, those kinds of things
Yeah. If you think about the interactive work Heather's been doing so far, typing things at the command window, one command at a time, getting a plot, getting a figure, the Live Editor lets you do that type of workflow, but your code and your results and any comments you add just kind of stay together in a single document. So it makes it pretty convenient, lets you save it in a nice format. It's basically an executable notebook is a way to think about it.
Exactly. And it's great, because you can also, like Kevin said, you can interact with it. So just like we saw with the Variable Editor, you can do very similar kinds of things. Let's say we wanted to just get pressure greater than a certain amount, maybe over 0. So we could do something like that. And notice, it's actually updating the code just like we've seen before. And so that's great. You can actually-- oh. It also gives us a nice opportunity to talk about logical indexing.
So many of these things you can do here. You can update the code, including logical indexing where you use that logical condition to extract data with that conditions-- in this case, 936 because that's what I clicked on.
So basically you you're pulling out every row from that huge table where the pressure is greater than or equal to 936.
Exactly. Perfect. Awesome. The other thing that's really nice, speaking of those interactivities, we had created a nice plot, but let's say we wanted to share this and give people that were working with the ability to also create us a nice plot. So I wanted to just show-- we'll use a lot of these, the Live Editor tasks. Well, I use a lot of them all the time. They're basically like little apps that you can put in your script that allow you to kind of go back and forth and for those kind of tasks that are very iterative.
So for example-- and select our data, our latitude, and longitude. And then we can just search-- again, this is really, really helpful for whenever you're sharing a couple other things that I was noting. Must have clicked something else. There it is. All right. Then if you change your mind, you can always just update it. So that really is helpful. You can immediately see the results if you wanted to change something. And all the different options. I think we've got to--
You want go back-- go back to that geo bubble, because--
Yeah.
We can-- if you pick a plot like this, geo bubble allows you to add another variable, right?
Yes. Yeah. So we could change the size of it. We could use, let's see, maybe the pressure. Or wind speed could work.
Yeah. So now you've got the track of the storm. All the bubbles are indicating that. But then the size of the bubble will indicate where the pressure is decreasing or increasing as the storm progresses.
Exactly. Awesome. All right. So we have a couple I think it will be good to go to the other script, because we have a bunch of them in the other one, so we can talk about a couple of more. So let's go ahead and do that. All right. I'm going to go ahead and close. And I'm going to clear my command window. Just clc. So I'm doing that.
All right. So we have a script already prepared that has a bunch of live tasks-- Live Editor tasks like this and has some more analysis. So we're going to go to that now. So just a couple of other things. We have the table of contents, nice documentation. And we're starting by importing-- using that function that we generated from the Import tool. So perfect.
The other thing, too, notice, as this is opening, this is retaining those Live Editor tasks I talked about. And if I wanted to, it would retain the results. So something to keep in mind. All right. So we're using that import file. And then here's the plot task again, and we can specifically help sort down to the ones that we're interested in. So I'm going to go ahead and just run this section by section so we can see.
So that use of the Import file function to replicate what was done with the Import tool, it's a great example of automation. You do something interactively, save the code to automate.
Yep, exactly. And then speaking of automating the code, you could actually look at the code that comes with these tasks. So if we wanted to do some changes, it would all be updated here, and then we can decide what options we want. All right. So then another thing-- we showed table, but we oftentimes, especially with something like this where we have that time stamp, we want to use a timetable. Because as you'll see, there are a lot of different functionality that we could use, like synchronizing and resampling data.
So for example, you notice, this looks about what every six hours?
Yep.
Yeah. We want to make sure it's every six hours. So especially for certain kinds of calculations, we want to make sure of that. So this is where these Live Editor tasks will come in handy for a lot of this data cleaning and decision-making where you can adjust and change the different methods.
So here, we're just assigning every six hours, and then we can use different interpolation methods and explore what we might want to use. So for example, if I wanted to try this line, I can do that and immediately take a look at the results. So those are really handy, especially for these kinds of tasks like you saying. Kevin, I know you really like these as well.
All right. So I guess one thing we want to do-- speaking of automation, we're going to want to apply that to our-- what we just did to our other cyclones. So a couple of things we could do, speaking of our code and controls, we could actually-- there's a little dropdown here, right-clicked, and I could just look at the code if I wanted to. So you have a lot of control over what you want to display and what you want to use yourself.
So one good value of that is because I could actually just select all of it and create a function just from what I select. So I'm just selecting what I want to refactor, and then there's the refactor dropdown, and then I'm converting it to a function. And so this will walk you through how to do that. So just thinking through the many different options. I kind of stopped it just because I had done it before, it's already in my script. It's here down at the bottom. There's no big mystery, it's exactly the same thing that we just saw. And again, kind of helps you take that next step once you're ready for the automation pieces.
So let's try it out and make sure it works. Looks good. So then we'll do that with our other cyclone, again, to make sure it works. And looks good. What do you think, Kevin?
Yep. I see a totally different track. So that's basically imported that single function, took the data that had been imported, did little pre-processing, plotted it, and we could do this for basically every single cyclone in our data set.
Yeah, absolutely. And so there are quite a lot. I just wanted to go back quickly to show-- I mean, of course, this isn't in the documentation, this is the full data set that I have. But we may want to repeat this for every single cyclone. So there's actually an easy way to do that so that you don't have to necessarily write a loop if you don't want to, and that's using a data store.
And so the data store, there's a bunch of different kinds of them. We won't go into it a lot of detail, there's much more in the documentation. But this will point to all of those files, and then we can control how to bring it in. There's even-- in the very beginning, we could control some of that. So if we had certain file extensions or the way the date is displayed, we can have that kind of control. And also, I guess I should have pointed out, Kevin's always-- he loves that function. Yeah, it's actually pulling from the documentation, right?
Exactly. And I don't use MATLAB quite as often as Heather, and so I find that those-- that contextual help that pops up is really great, particularly when you're first getting started.
Yep. And especially for something like this where you have a lot of options. You don't have to have the documentation open at all times like I used to, although I still do. So at this point, we can preview the data to see how it's going to be brought in. And then there are a lot of different options for this. Again, we won't go through it here since this is more of an intro, but you could read-- and that will kind of parse through the data, read all. I have a note to be careful about that one because-- make sure you have enough space for that because it's going to read everything in your data set.
So we had already done this before. I'm going to just carry on with that. And also, that reminds us to stop and talk about one of Kevin's other favorite features MAT files.
Right. So MAT files are just a convenient way to save your work. You can take and save one or more variables, often to a file, and then when you can come back, you can effectively restart from where you were.
Exactly. You don't have to start back over from the beginning. You can even do that from the workspace. I just wanted to show, you can right-click and Save As, it's the same idea. So then you can load it up whenever you're ready.
So now that we have all of the data over all the years-- I guess we should have paused a bit longer, but that's 67,000 rows as opposed to the hundred or so we were working with before. So that is where we wanted to start thinking about grouping and doing some calculations, especially by the grade. So that's going to tell us how severe the storm is.
And this is another one of those great Live Editor tasks I think-- especially for stuff that we do a lot. You can choose the group. In this case, we want to calculate by the grade. You can use how you-- decide how you want to bin or how you want to deal with the grouping. And then which variables to work on. And you can always change your mind.
I love these little visualizations here that just give you a sense of what the output will look like, whether you're aggregating or transforming. And then you can decide what different summary stats you might want, including a custom function. And so here, we're looking for the min and the median of the pressure.
So let me make sure I ran this section. And it looks like-- all right, yeah, we've got a good spread here. And yeah. So it makes sense the pressure is lower here for-- oh, yeah, the stronger cyclone.
Yeah. Yeah, so this is doing basically the aggregate-type summary statistics across-- how many were there? Over 400-- close to 500 cyclones in the data set we're looking at.
Yep. Yeah, it's great. And you can do all of the statistics if you wanted to. A lot of nice options there.
And again, this is really helpful in the beginning when you don't quite know the syntax of all of these.
Yeah, definitely. So we're going to do the same thing, but we can also group by time. As we mentioned about that timetable, that's something that you often want to do. You try to figure it out by a month or by year or by century or something like that, you could actually-- decade, century, you have a lot of options.
And so here, we're going to look at the wind speed and get the maximum. You notice our not a numbers. Didn't point those out earlier, but that means that there's not a number. So that's kind of a placeholder in MATLAB whenever there's an empty space. You can-- there are a lot of options for those-- oftentimes in a function you'll see that. And there's even a Live Editor task for missing data. So I just wanted to point that out since it's something that you'll run-- might run across.
All right. So looks pretty reasonable, doesn't look like there's a lot of pattern there. We have a couple of other Live Editor tasks but doing similar things. This one's doing a custom function, so you can check that out. But we can just run that. So that's also nice. If you don't want to interact with it, you can-- it looks like basically like a line of code. Very nice.
All right. So it looks like-- yeah, it seems like we've got some seasonal indication of when the cyclones are occurring and how long they might be based on these histograms. Let me see. So actually, yeah, this is a great-- I think this is a really great wrap-up for this example, because we want to show the different tracks now that we have all of them. And Kevin, do you want to talk about the Live Editor controls? I know that, yeah, that's a big hit with our users.
Yeah. The way these work, you're effectively defining a variable or some parameters in your script by inserting a control. And the advantage to this is that it gives you an interactive way to toggle things and adjust things. And it's great for sharing, because this allows other people to execute your code without having to be that familiar with the actual code.
And what's actually happening here is we're picking a month to show and then a five-year window of years, and then the animated plot is showing all of the tracks of all the cyclones within that time frame.
Yeah. We could even save that, too, if we wanted to. Actually, before we get there, I should point out some of the other controls that Kevin was mentioning. You have sliders and dropdowns like you see here, but you can also do checkboxes, edit fields. Basically almost like making a little mini-app.
Because if you hide the code, that's pretty much what you end up with. So I just was using the displays on the right here, just toggling those. And if you're sharing this with somebody that doesn't really need to see the code, you can just hide it. No big deal. So these are really effective for especially for that purpose or even for yourself if you want to just look at the results. All right. Last thing here we wanted to just look at. I guess I can--
Actually, you just repeat that point where you can export that animation. Right-click to the bottom-right.
Yes. That's excellent, thank you. Because that is one of my favorite new features. We may want to use this in a report. We could see that as a GIF or an MP4. So let me just save it and then try it out. So that's really exciting. That's a recent feature. Let's just double-check, make sure it worked.
Very nice.
Yeah. And so that's another thing, too. Don't be afraid to zoom in and use a lot of the different options whenever you see them in the live control-- in the live scripts. There's a lot of great capabilities for interacting with your figures and other stuff. All right. So we're pretty much done with our analysis. We've gotten some great stuff, but we wanted to just show a couple of highlights before we wrap up.
And one thing, especially for me having a background in machine learning, I always like to show some real serious analysis. If you go to the Apps tab in MATLAB, these are a lot of really helpful different apps for more in-depth things that you're going to be doing, like deep learning, signal processing, deployment, those kinds of tasks where it's a little bit more specific to what you need.
So I'm just going to show the classification process just to see if we could try to classify the grade of the storm. And I'm just going to select-- oops, let's run this part of the script. I'm separating out the year, month, and day, and then just separating out some data to test. So let me go back here and bring in the data.
And I won't spend too much time explaining each and every step. I think most of these apps are pretty straightforward. But just to get an idea, we want to just look at the latitude, longitude, and date-time information. So this one especially is awesome for exploring. I know Kevin and I use this one a lot for-- especially in machine learning.
So I'm going to go ahead and just select. Notice that I brought in the data. I'll go ahead and do Alt Quick-to-Train. Use Parallel and Train. So this is going to open up a parallel pool, but that gives me a second to talk more about the app in general. So again, kind of the value, you're able to look at all of the different models, true for the other kinds of apps. And then explore what the visualizations, and then of course, generate the code just like we've seen with the other apps and live tasks and everything that you're doing in MATLAB.
Yeah. With machine learning, you typically don't have a great idea of which model will work. So we try a bunch, and then the app lets you compare the results from each.
Exactly. So there's a lot of-- there's some videos on YouTube and other places, a lot of good information about this app in particular and, of course, many others. But again, just to kind of give you a sense of what you might be doing or what people tend to do in MATLAB. And again, this is where you can explore the results. This one doesn't look that great, this one's highlighted. It'll give you some indication to help you along the way, too.
So if we just look here just for completion, I'll go ahead and generate that function just to prove it to you. Hopefully it shouldn't have to prove it by now. And then I'll export the model. So this way I don't have to go through it once I've trained it. I've trained it, I'm happy with it. Maybe I want to just go ahead and deploy it now.
So I can-- if I take a look here, it even helps you figure out how to use it afterwards. It gives you this indication and a link to the documentation. So I have it back in my script. And if we just go down here, I'd also saved the model as a MAT file. And so now I'm testing it on this data. So not the best. Could use some work in this case.
Yeah.
But I only did Alt Fast-to-Train just for the interest of time. But also to give a good idea of how you can go about doing these things.
So if this happens to be an area of interest for you, m Heather pointed out, there are other webinars that are targeted specifically at machine learning, as well as deep learning. And they have a workflow similar to this one, but it'll be a little more detailed and step you through everything you might want to know to get started there.
Exactly. So I think pretty much-- one last thing we wanted to do was-- excuse me-- share this. We wanted to create some kind of artifact to mark our completion of our work. So it's really easy with a live script, especially if you want to make a report, because you could just go to Export and then choose what you want.
So we could just do HTML. Looks good. But again, you could do PDF, Word doc, LaTeX, lots of different options. You can also make apps. We'll talk a little bit more about some of the different options of how you might want to share.
And while I'm waiting for that to finish, since I'm in MATLAB Drive, I also could share this whole thing with anybody. I could just get a link and share my code and my files with anybody at all. So there's a lot of different ways. Again, we'll wrap up-- or whenever we're doing our wrap-up we'll point some of that stuff out.
Right. So what this static report will represent-- you could share the script directly with someone and it would look like a report because of all the comments and headers and things that Heather added. And then people could execute that and use the interactive controls, et cetera. But then the static report is for those colleagues and others who don't necessarily need to execute the code, but just really need to see the net result of your work.
Exactly. All right. So I guess-- yeah, let's go ahead and go back to our slides, and we can start wrapping things up so we can get to our Q&A.
All right. So when we think about this tech computing workflow, that demo we just stepped through is just one example. In our case, we started with a file, and then did some data analysis and modeling, and we had the static report. So if Heather, you could just kind of click through, you see the red boxes that highlight those steps.
Other people are going to take all sorts of different paths through this. And you yourself can have, through your work, lots of different ways through this. And the point being that this was just one small example of all the things that you can do in MATLAB. So for example, I started with a file. You could have started with data from all sorts of formats.
Heather, if you could go to the next slide, the applications and languages are another area where you could grab data. It could be a database. It could be getting something from data acquisition or hardware or some type of standalone device. And then again, once you got the data, once you're in MATLAB, you want to represent it.
We touched briefly on a few of these data types. You can see that there are quite a few. You want to get to know these because you want to represent your data most effectively because then there's custom functionality targeted for that that will make it easier for you to work with it. And then of course, there were the live tasks. And then finally, I want to highlight for visualization, the MATLAB Plot Gallery. If you search for that, that's a great resource to find all-- a very wide range of the plots available in example code.
Then if you're looking to expand beyond some of the core capabilities we highlighted, if your work requires you to be doing some AI or data science work or signal processing or wireless, we have capabilities for those from MathWorks ourselves. And then the community also provides things. So if you were to search on MATLAB's File Exchange, you'll find that thousands of people have shared MATLAB code and you can use that directly.
You'll also find thousands of repositories on GitHub. So that's a great way to leverage the work of others. It's kind of like how Heather started with the code example from our doc. These are just other sources of code that you can start with. And then when you're done, you want to share your work, one option is to create an app yourself. We have an application called App Designer, and that would allow you to do either a desktop or a web app or you could actually share and distribute through a Docker container, for example, or as an Excel Add-In.
Other options include deploying to a production environment. And that could be through another language, as the backend server-- we have a product called Matlab Production Server that'll help you manage all of that. And then there are cases where you want to take your MATLAB code or model and translate it into another language to embed it on some platform. It could be C or C++ code or perhaps CUDA code to take advantage of GPUs.
So again, we touched on things just briefly. Realize that there is a lot more as you get deeper into MATLAB. When it comes to getting started, the code examples are a great spot. If you want something more structured, we have on-ramps that are about two hours each, and this gives you a little more guided help as you're stepping through. And then to go even deeper, we have full-blown training class, hands-on training both in-person and online offerings.
So hopefully that was a good summary and overview of getting started with MATLAB. And I think that's about it. At this point, we'll start to take some of your questions.
Thanks, everyone.