2010-12-07 11 views
2

par exemple,Comment facilement faire croiser le produit d'une matrice 3x3 avec un vecteur 3d dans matlab?

magique (3) x [1,2,3] donne:

-9 -18 15 
1 -2  1 
23 -10 -1 
+0

Umm ... qu'entendez-vous exactement par un produit croisé d'une matrice avec un vecteur? –

+1

L'opération de produit croisé est définie pour des paires de vecteurs 3d. Vous ne pouvez pas croiser une matrice avec un vecteur. – jtdubs

+0

Je vais ignorer votre ignorance, jtdubs. Algèbre tensorielle –

Répondre

1

Cela ressemble à ce que vous voulez faire est de calculer le produit croisé de chaque ligne d'un Matrice 3-par-3 avec un vecteur 1-by-3. Afin d'utiliser la fonction CROSS, les deux entrées doivent avoir la même taille, donc vous devrez répliquer votre vecteur 1-by-3 en utilisant la fonction REPMAT pour qu'il ait trois lignes. Ensuite, exécutez le produit croisé le long des colonnes:

>> A = magic(3); 
>> B = [1 2 3]; 
>> C = cross(A,repmat(B,size(A,1),1),2); 
C = 

    -9 -18 15 
    1 -2  1 
    23 -10 -1