Re: How to mutiply a 3x1 and 1x3 vector
- Subject: [mg3091] Re: How to mutiply a 3x1 and 1x3 vector
- From: leszek (Leszek Sczaniecki)
- Date: 31 Jan 1996 04:36:00 -0600
- Approved: usenet@wri.com
- Distribution: local
- Newsgroups: wri.mathgroup
- Organization: Wolfram Research, Inc.
- Sender: daemon at wri.com
In article <4ekes6$6gj at dragonfly.wri.com> snichols at onramp.net (Stephen Nichols) writes:
>
> Hi,
>
> I have another question that I thought would be simple to to in Mathematica.
> I have two vectors A={1,2,3} and B={3,4,5}. How do I multiple them together
> to get a 3x3 matrix. A . B gives me a scalar result. Mma seems to always
> treat the first one as a row vector and the second as a column vector. I
> need it to do the opposite. Treat the first as a column vector and the second
> as a row vector. Any ideas?
>
> thanks,
>
>
>
It seem to me that the best way to distinguish between row and column vectors is to write
them explicitly in matrix form.
{{a}, {b}, {c}} is a column vector.
{{x, y, z}} is a row vector.
{{a}, {b}, {c}}.{{x, y, z}} is a 3x3 matrix:
{{x, y, z}}.{{a}, {b}, {c}} is 1x1 matrix (as oppose to a scalar).
In[1]:= vector = {{a}, {b}, {c}}
Out[1]= {{a}, {b}, {c}}
In[2]:= MatrixForm[vector]
Out[2]//MatrixForm= a
b
c
In[3]:= covector = {{x, y, z}}
Out[3]= {{x, y, z}}
In[4]:= MatrixForm[covector]
Out[4]//MatrixForm= x y z
In[5]:= vector.covector
Out[5]= {{a x, a y, a z}, {b x, b y, b z}, {c x, c y, c z}}
In[6]:= MatrixForm[%]
Out[6]//MatrixForm= a x a y a z
b x b y b z
c x c y c z
In[7]:= covector.vector
Out[7]= {{a x + b y + c z}}
In[8]:= MatrixForm[%]
Out[8]//MatrixForm= a x + b y + c z
There is no problem to transfer lists into vectors or covectors. Here are obvious
micro-utilities.
ToVector[l_List]:= List /@ l
ToCovector[l_List]:= {l}
Greetings,
Leszek