Effacer les filtres
Effacer les filtres

Multiplying 2 matrices, using a for loop and storing results in a table.

3 vues (au cours des 30 derniers jours)
Anders
Anders le 26 Oct 2013
Commenté : Anders le 28 Oct 2013
Hey.
I have to multiply D=[cos(pi/18) -sin(pi/18); sin(pi/18) cos(pi/18)] by X= [0.80;0] 9 times, using a for loop. I want to store the results in a table of the form: X=zeros(2,10).
I've tried to do it like this:
X=[0.80;0]
t=pi/18
D=[cos(t) -sin(t); sin(t) cos(t)]
d=D*X
X=zeros(2,10)
for D=10:2,
X(D)=d;
end
But this just writes:
X =
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Anders. I'm a bit lost.
  3 commentaires
Anders
Anders le 27 Oct 2013
It means, that i have to multiply D by X 9 times. It would be the same as D^9*X. But i have to store all the results, in a table (2, 10). First: D*X, second: D*(D*X) Third: D*(D*(D*X) and so on.
Anders
Anders le 27 Oct 2013
I've tried to do it like this: X=[0.80;0] t=pi/18 D=[cos(t) -sin(t); sin(t) cos(t)] d=D*X X=zeros(2,10) for D=10:2, X(D)=d; end But this just writes: X = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Connectez-vous pour commenter.

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 26 Oct 2013
Modifié(e) : Andrei Bobrov le 27 Oct 2013
[EDIT]
X=[0.80;0];
t=pi/18;
D=[cos(t) -sin(t); sin(t) cos(t)];
X(2,10) = 0;
for jj = 2:size(X,2)
X(:,jj) = D*X(:,jj-1);
end
  4 commentaires
Anders
Anders le 28 Oct 2013
Thank you!

Connectez-vous pour commenter.

Plus de réponses (1)

sixwwwwww
sixwwwwww le 27 Oct 2013
Dear Andres, you can do it as follows using for loop:
D = [cos(pi/18) -sin(pi/18); sin(pi/18) cos(pi/18)];
X = [0.80;0];
result = zeros(2, 9);
for i = 1:9
result(1, i) = D(1, 1) * X(1) + D(1, 2) * X(2);
result(2, i) = D(2, 1) * X(1) + D(2, 2) * X(2);
end
disp(result)
I hope it helps. Good luck!

Catégories

En savoir plus sur Multidimensional Arrays 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