Saving a variable with an index in a for loop

Hello. I am running into an issue of saving a created matrix with an index added to it for example
for i=1:10
x=1:10
y=1:10
z=1:10
A=[x y z]
end
What im tryng to do is then save the resulting matrix as A1, A2, A3 ect. any pointers for this?

Answers (1)

Can you do this? Yes.
Should you do this? The general consensus is no. See that Answers post for an explanation and alternatives.

3 Comments

Hmm, Ive looked at your link and I'm a little lost tbh. What woould you recommend to do then if the arrays x y z being made are not consistent? I tried something such as :
A(:,:,i) =[x y z];
But am getting: Error using horzcat
Dimensions of arrays being concatenated are not consistent.
Any inputs?
If you do not have consistency of sizes, then use a cell array
A{i} = [x y z]
The solutions given above concatenate your data, which apparently your data is not suitable for.
You can trivially resolve this by using a cell array, for example:
c = cell(10,3);
for ii = 1:10
c{ii,1} = 1:10;
c{ii,2} = 1:10;
c{ii,3} = 1:10;
end
Your approach of putting pseudo-indices into the variable names should definitely be avoided.

Sign in to comment.

Products

Tags

Asked:

on 4 Oct 2021

Edited:

on 5 Oct 2021

Community Treasure Hunt

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

Start Hunting!