非常喜欢Mathematica的“自动草稿纸”的理念,Magic Paper, 唔哈~
Mathematica的矩阵操作和Matlab的风格十分不同。
[ ] 是一个Part运算符,就是告诉你,前面的数据即将被拆分。比如:对于一个矩阵M
M[ [1] ] 代表第一行,那么可以看到,外侧的一对[ ]是告诉软件,我们要进行Part操作了,里面的一对括号中告诉软件是怎样的Part操作。
M[ [1, 2] ]代表取第一行第二个元素。
M[ [All, 2] ] 代表取第二列。
M[ [1;;12, 5;;7] ] 代表取矩阵的一部分组成一个新的矩阵。
那么,对于矩阵中元素的操作也和Matlab有很大不同。
例如,我们要让矩阵u, v中的元素对应地组成数对即{u, v},如果这样:
Table[u, v]
得到的结果是不对的,它将会把u的第一行和v的第一行组成一个“数对”,而不是将对应元素组成数对。
正确的表示方法应该是这样的:
Table[ {u[i, j], v[i, j]}, {i, 128}, {j, 128} ]
可以这样理解
{u[i, j], v[i, j]} 代表我们要把u, v中的对应元素组成数对。
{i, 128}, {j, 128} 代表了i, j的变量范围,这里是一个简写的方式,它等价于
{i, 1, 128, 1} 注,最后的一个1是步长。