MATLAB Answers

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

2 views (last 30 days)
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.

  0 Comments

Sign in to comment.

Accepted Answer

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

  3 Comments

Neeraj Kumar
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-

Sign in to comment.

More Answers (1)

Sindar
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

  4 Comments

Show 1 older comment
Walter Roberson
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.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!