# 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.

Out[1]= | |

The same is true for a matrix, or, for that matter, for any nested list.

Out[2]= | |

The differentiation function

D also applies separately to each element in a list.

Out[3]= | |

The sum of two vectors is carried out element by element.

Out[4]= | |

If you try to add two vectors with different lengths, you get an error.

Out[5]= | |

This adds the scalar

to each element of the vector.

Out[6]= | |

Any object that is not manifestly a list is treated as a scalar. Here

is treated as a scalar, and added separately to each element in the vector.

Out[7]= | |

This multiplies each element in the vector by the scalar

.

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

is treated as a scalar, and added separately to each element in the vector.

Out[9]= | |

This is what happens if you now replace

by the list

.

Out[10]= | |

You would have gotten a different result if you had replaced

by

before you did the first operation.

Out[11]= | |