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

1 visualizzazione (ultimi 30 giorni)
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 Commenti
Anders
Anders il 27 Ott 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 il 27 Ott 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

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 26 Ott 2013
Modificato: Andrei Bobrov il 27 Ott 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 Commenti

Accedi per commentare.

Più risposte (1)

sixwwwwww
sixwwwwww il 27 Ott 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!

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by