Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica >
How to | 更新矩阵的一部分
Mathematica 具有多种矩阵操作,这些操作支持矩阵的构建、计算及可视化等操作. 同时,它具有丰富的语言,可以对矩阵的一部分进行择取并赋予新值.
定义下面的矩阵:
In[1]:=
Click for copyable input
Out[2]//MatrixForm=
在赋值式的左端使用 Part 的简写形式)设置一个元素:
In[3]:=
Click for copyable input
Out[3]=
这里表明在(1, 2) 处的元素已被更新:
In[4]:=
Click for copyable input
Out[4]//MatrixForm=
如对一整行进行设置,需使用一个索引值来指定行,并赋给一个新行:
In[5]:=
Click for copyable input
Out[6]//MatrixForm=
如对一整列进行设置,需用 All 选择所有行,并指定列:
In[7]:=
Click for copyable input
Out[8]//MatrixForm=
    
如要设置一个子阵,可以使用 Span 的简写形式 .
首先设置一个5×5矩阵,元素由0到10之间的随机整数组成:
In[24]:=
Click for copyable input
Out[25]//MatrixForm=
这里左上方突出显示的3×4矩阵对应于行1至3及列1至4:
Out[49]=
使用 Span 的简写形式 () 指定所跨越的相关行与列,更新该子矩阵:
In[26]:=
Click for copyable input
Out[27]//MatrixForm=
更新除最外围的行与列外的所有元素(负数索引由后向前计数):
In[28]:=
Click for copyable input
Out[29]//MatrixForm=
    
当更新一个大型矩阵时,应该尽量避免使用循环语句. 如果能够使用其中一种更新技术,用一个指令更新所有的元素,速度通常会快得多:
In[36]:=
Click for copyable input
用这种方法更新一行的所有元素,速度较慢:
In[37]:=
Click for copyable input
Out[37]=
这种方法要快得多:
In[38]:=
Click for copyable input
Out[38]=
如果不能避免在循环中更新矩阵,您需要小心避免额外引用矩阵. 否则,矩阵将被复制,循环将不会很快运行:
In[39]:=
Click for copyable input
这里小心地避免了额外引用. 循环运行得相当快:
In[40]:=
Click for copyable input
Out[40]=
这里,在每一步都进行矩阵的复制,循环运行得较慢:
In[41]:=
Click for copyable input
Out[41]=
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
格式:   HTML  |  CDF