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?

Réponses (1)

Steven Lord
Steven Lord le 4 Oct 2021

0 votes

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

3 commentaires

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]
Stephen23
Stephen23 le 5 Oct 2021
Modifié(e) : Stephen23 le 5 Oct 2021
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.

Connectez-vous pour commenter.

Catégories

Produits

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by