How to store matrix data (Imaginary) from a loop
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Matthew Worker
le 3 Sep 2015
Commenté : Walter Roberson
le 4 Sep 2015
Hello, In my project I have a loop and each iteration gives me a matrix with imaginary values:
for fi = 0:10000:1100000
....
A1=[a11,a12;a21,a22]
end
Output:
A1 =
1.0e+02 *
-0.0934 + 0.0245i -9.0639 + 3.2366i
-0.0010 + 0.0002i -0.0934 + 0.0245i
I need to store all this matrixes with relation to fi value. I am going to use few similar loops and multiply output matrixes (for the same value of fi).
I try to use
A1(fi)=[a11,a12;a21,a22]
but have below error:
Subscript indices must either be real positive integers or logicals.
Can I please any ideas and tips? :)
0 commentaires
Réponse acceptée
Walter Roberson
le 4 Sep 2015
fivals = 0:10000:1100000;
numfi = length(fivals);
A1 = cell(numfi, 2);
for fiidx = 1 : numfi
fi = fivals(fiidx);
....
A1{fiidx, 1} = fi;
A1{fiidx, 2} = [a11,a12;a21,a22]};
end
Now A1 will be an N x 2 cell array in which the first column is the fi values and the second column is the A1 arrays that resulted.
2 commentaires
Walter Roberson
le 4 Sep 2015
assuming that the list of fi are the same, then
A3(:,2) = cellfun(@mtimes, A1(:,2), A2(:,2), 'Uniform', 0);
A3(:,1) = A1(:,1);
If the fi are certain to be there and to be bit-wise identical but not in the same order then different code would be used. If the fi are certain to be approximately there but not necessarily bitwise identical and not in the same order then different code yet would be used. If the fi are not certain to all be present between the two then you need to define the behaviour for the cases that do not match.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements 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!