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

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

Can you explain what means 9 times?
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.
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

Is this using a for loop? How do I store the results in 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

Connectez-vous pour commenter.

Plus de réponses (1)

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 Performance and Memory dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by