Video length is 3:03

How to Store Data in a Matrix

Do you need a for loop to populate a matrix? In this video step through a few different ways to store data in a matrix in MATLAB® with and without for loops. 

Published: 1 Jul 2020

In today's video on MATLAB basics, we're going to show how to store the results of a calculation inside of a vector, which is a special case of a matrix. What we're going to do is say for I is equal 1 : 10, meaning that we're going to count from 1 to 10. Now inside of this loop what we're going to do is say Y is equal to I plus rand. So we're going to just have a random number generated—somewhere between 0 and 1—and add it to the current value of I, and end.

So I want to actually see the results of this. So I'm going to take the semicolon off. Now let's run this. I'm going to run it by hitting F5, which means save and run the current file. And we can see we've gone through this loop 10 times and gotten different values of Y.

Now what if we wanted to plot those? Well, every time through this loop we have overwritten the value of Y so we lost, like for instance, 9.528 when we generated 10.857. That isn't going to do very well if we want to plot this data.

So what we can do is come in here and say I want to make Y into a vector. So every time through the loop now this statement is going to read Y element 1 or 2, or 3, or 4, is going to equal to the same thing it did before. Now let's run this again. I'm going to do that by hitting F5. And what we'll see by scrolling up through the Command Window here is that at first, we have Y is equal to a 1 by 1, then a 1 by 2, 1 by 3. And each time we keep adding another column to this. And so we're storing that data.

Now that it's done what we can do is come in here and say Plot (y), and we can see that on the graph here. So this is a very simple example of a technique that is used all the time in MATLAB where you will just take the results and store them in a matrix for easy manipulation and use later.

This would also work if you were calculating a vector each time through the loop and wanted to store it as another column. So each column might represent one time through your loop. If your calculation is creating a matrix each time, you would then use a three-dimensional matrix, and so on. MATLAB actually supports n-dimensional matrices, so you can see how this can work for multiple dimensions.

Thank you.

Related Products