the description below .. for loop and matrices

1 vue (au cours des 30 derniers jours)
Matthew Worker
Matthew Worker le 26 Juin 2021
Commenté : Rena Berman le 16 Déc 2021
% when o=1 I want to multiply the second row of H with the second column of W and sum it with the multiplication of the third row of H with the third column of W and the multiplication of the fourth row of H with the fourth column of W.
% when o=2 I want to multiply the first row of H with the first column of W and sum it with the multiplication of the third row of H with the third column of W and the multiplication of the fourth row of H with the fourth column of W.
% when o=3 I want to multiply the first row of H with the first column of W and sum it with the multiplication of the second row of H with the second column of W and the multiplication of the fourth row of H with the fourth column of W.
% and so on .....
clc;
clear;
H=[1 2 2 1 ; 3 1 1 2;1 3 2 4;2 1 3 5]
W=[4 1 2 1;1 3 2 1;2 1 1 3;2 1 1 4]
for o=1:4
p = abs(H(o,:)*W(:,o))
end
  1 commentaire
Rena Berman
Rena Berman le 16 Déc 2021

(Answers Dev) Restored edit

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 26 Juin 2021
H=[1 2 2 1 ; 3 1 1 2;1 3 2 4;2 1 3 5]
H = 4×4
1 2 2 1 3 1 1 2 1 3 2 4 2 1 3 5
W=[4 1 2 1;1 3 2 1;2 1 1 3;2 1 1 4]
W = 4×4
4 1 2 1 1 3 2 1 2 1 1 3 2 1 1 4
locs = [2 2 3 3 4 4;
1 1 3 3 4 4;
1 1 2 2 4 4];
for o = 1 : size(locs,1)
p(o) = H(locs(o,1),:)*W(:,locs(o,2)) + H(locs(o,3),:)*W(:,locs(o,4)) + H(locs(o,5),:)*W(:,locs(o,6));
end
p
p = 1×3
55 58 53
  6 commentaires
Walter Roberson
Walter Roberson le 27 Juin 2021
Suppose for discussion that H is 4 x 3, and W is 5 x 4
H=[1 2 2; 3 1 1;1 3 2;2 1 3]
H = 4×3
1 2 2 3 1 1 1 3 2 2 1 3
W=[4 1 2 1;1 3 2 1;2 1 1 3;2 1 1 4; 1 2 4 5]
W = 5×4
4 1 2 1 1 3 2 1 2 1 1 3 2 1 1 4 1 2 4 5
Now for the first iteration, you define
o = 1
p = abs(H(o,:)*W(:,o))
H(o,:) is 1 x 3 and W(:,o) is 5 x 1. But you cannot use * between a 1 x 3 and a 5 x 1.
Your definitions cannot work unless you define that W has the same number of rows that H has columns -- which you do not do.
If you had defined
p = abs(W(:,o)*H(o,:))
then that would work, giving a 5 x 3 result.
Which do you want? That each entry should be size(W,1) x size(H,2) ? Or that each entry should be 1 x 1, in which case you would have to define H as having the same number of columns as W has rows.
Matthew Worker
Matthew Worker le 27 Juin 2021
Modifié(e) : Leo Map le 27 Juin 2021
you are right, W has the same number of rows that H has columns,but ... when (i=1) I need the multiplication of the first row of H and the first column of W and put it in variable Alfa_1 and then multiplying separately the second row of H and the second column of W and sum it with the multiplication of the third row of H and the third column of W and sum it with the multiplication of the fourth row of H and the fourth column of W and put the sum in Alfa_2.
... when (i=2) I need the multiplication of the second row of H and the second column of W and put it in variable Alfa_1 and then multiplying separately the first row of H and the first column of W and sum it with the multiplication of the third row of H and the third column of W and sum it with the multiplication of the fourth row of H and the fourth column of W and put the sum in Alfa_2.
and goes like this.
I'm sorry because I didn't describe clearly what I need.
Thank you

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by