此为 Mathematica 7 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)
Mathematica 教程

Operations on Scalars, Vectors and Matrices

Most mathematical functions in Mathematica are set up to apply themselves separately to each element in a list. This is true in particular of all functions that carry the attribute Listable.
A consequence is that most mathematical functions are applied element by element to matrices and vectors.
The Log applies itself separately to each element in the vector.
In[1]:=
Click for copyable input
Out[1]=
The same is true for a matrix, or, for that matter, for any nested list.
In[2]:=
Click for copyable input
Out[2]=
The differentiation function D also applies separately to each element in a list.
In[3]:=
Click for copyable input
Out[3]=
The sum of two vectors is carried out element by element.
In[4]:=
Click for copyable input
Out[4]=
If you try to add two vectors with different lengths, you get an error.
In[5]:=
Click for copyable input
Out[5]=
This adds the scalar 1 to each element of the vector.
In[6]:=
Click for copyable input
Out[6]=
Any object that is not manifestly a list is treated as a scalar. Here c is treated as a scalar, and added separately to each element in the vector.
In[7]:=
Click for copyable input
Out[7]=
This multiplies each element in the vector by the scalar k.
In[8]:=
Click for copyable input
Out[8]=
It is important to realize that Mathematica treats an object as a vector in a particular operation only if the object is explicitly a list at the time when the operation is done. If the object is not explicitly a list, Mathematica always treats it as a scalar. This means that you can get different results, depending on whether you assign a particular object to be a list before or after you do a particular operation.
The object p is treated as a scalar, and added separately to each element in the vector.
In[9]:=
Click for copyable input
Out[9]=
This is what happens if you now replace p by the list {c, d}.
In[10]:=
Click for copyable input
Out[10]=
You would have got a different result if you had replaced p by {c, d} before you did the first operation.
In[11]:=
Click for copyable input
Out[11]=