Using string saved variables for calculations

1 vue (au cours des 30 derniers jours)
Guillermo Lopez
Guillermo Lopez le 4 Juin 2012
If I have variables with varying names (Z_1,Z_2,Z_3,etc) with assigned values of z made by num2str as shown below;
for v=1:18
eval(['Z_' num2str(v) '=z'])
end
and each has stored a matrix inside (Z_1 is a 10x10 matrix, and so on for each Z_n), and I want to sum up the matrices without having to enter TotalZ=Z_1+Z_2+Z_3...Z_18, is there any quick way of referring to the variables? I mean, something of the kind of :
TotalZ=sum('Z_'num2str(v))
I can't seem to find a way of using those stored variables to o anything, if I dont enter them directly by hand. I need to know the right way of referring to the variables for using them for any calculation. Thanks in advance.

Réponse acceptée

Titus Edelhofer
Titus Edelhofer le 4 Juin 2012
Hi,
generally speaking you can do the same as before:
TotalZ = 0;
for v=1:18
TotalZ = TotalZ + eval(['Z_' num2str(v)]);
end
But I would suggest to use cellarrays directly:
allZ = cell(1, 18);
for v=1:18
all{v} = z;
end
Working with the cell array later will be much easier, e.g.,
allZ3D = cat(3, allZ{:});
TotalZ = sum(allZ3D, 3);
Titus
  1 commentaire
Guillermo Lopez
Guillermo Lopez le 4 Juin 2012
Thank you very much. Works well

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 4 Juin 2012

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by