# How to store a matrix, A, in variable X, where X is also carrying a counter "i"

2 views (last 30 days)
Neeraj Kumar on 16 Sep 2020
Commented: Neeraj Kumar on 16 Sep 2020
I have a matrix A, which I want to store in a varaible X.
Now I can do,
X=A;
But the varaible is X is having a counter i, beacuse the value of X variable in one iteration will be used in the next iteration and so on.
So, it put a counter like this;
X(i)=A;
But, in the above line, the indices error - Unable to perform assignment because the indices on the left side are not compatible with the size of the right side - is shown.
What should be the correct syntax, plaease tell me.

Ulli Srinivasu on 16 Sep 2020
Hi Neeraj,
simply create a structure.
X = struct();
X(i).A = A;

Neeraj Kumar on 16 Sep 2020
Hi Ulli Srinivasu,
What you said worked. But, now the variable X becomes 'struct", so I can't use it in further equations invloving multiplication of variable X.
Please, see the code from line 27 and the error in command window, in the pic attached below-
Ulli Srinivasu on 16 Sep 2020
use x(j-1).A, x(j).A, x(j+1).A
Neeraj Kumar on 16 Sep 2020
It worked!! Thanks Ulii Srinivasu!!

Sindar on 16 Sep 2020
Simple way: add a third dimension, "pages":
X(:,:,i) = A;
But, if you only need the last iteration, it's better to store just the current and last iteration. Something like:
n=10;
m=4;
X_new = rand(n,m);
for ind=1:10
X_old = X_new;
X_new = X_old.^2;
end

Show 1 older comment
Neeraj Kumar on 16 Sep 2020
Sindar??
Walter Roberson on 16 Sep 2020
What you are seeing displayed is not two matrices, it is a way to represent a multidimensional matrix of numeric values on the command window.
I would suggest that you use SIndar's X_old strategy.
Neeraj Kumar on 16 Sep 2020
Ok, i will try this X_old strategy. Thanks Walter! Thanks Sindar!

R2019a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!