How to| 更新矩阵的一部分

Wolfram 语言具有多种矩阵操作,这些操作支持矩阵的构建、计算及可视化等操作. 同时,它具有丰富的语言,可以对矩阵的一部分进行择取并赋予新值.

定义下面的矩阵:

在赋值式的左端使用 [[...]]Part 的简写形式)设置一个元素:

这里表明在(1, 2) 处的元素已被更新:

如对一整行进行设置,需使用一个索引值来指定行,并赋给一个新行:

如对一整列进行设置,需用 All 选择所有行,并指定列:

    

如要设置一个子阵,可以使用 Span 的简写形式 ;;.

首先设置一个5×5矩阵,元素由0到10之间的随机整数组成:

这里左上方突出显示的3×4矩阵对应于行1至3及列1至4:

使用 Span 的简写形式 (;;) 指定所跨越的相关行与列,更新该子矩阵:

更新除最外围的行与列外的所有元素(负数索引由后向前计数):

    

当更新一个大型矩阵时,应该尽量避免使用循环语句. 如果能够使用其中一种更新技术,用一个指令更新所有的元素,速度通常会快得多:

用这种方法更新一行的所有元素,速度较慢:

这种方法要快得多:

如果不能避免在循环中更新矩阵,您需要小心避免额外引用矩阵. 否则,矩阵将被复制,循环将不会很快运行:

这里小心地避免了额外引用. 循环运行得相当快:

这里,在每一步都进行矩阵的复制,循环运行得较慢: