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?

Risposte (1)

Steven Lord
Steven Lord il 4 Ott 2021
Can you do this? Yes.
Should you do this? The general consensus is no. See that Answers post for an explanation and alternatives.

3 Commenti

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.

Accedi per commentare.

Prodotti

Richiesto:

il 4 Ott 2021

Modificato:

il 5 Ott 2021

Community Treasure Hunt

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

Start Hunting!

Translated by