我将尝试在Mathematica中删除一个矩阵。一种不太优雅的方法是像下面这样指定一个新矩阵来实现:
S = Table[
Ss[[If[i < t, i, i + 1]]][[If[j < t, j, j + 1]]], {i, q}, {j, q}];
目标是消除行和列t。
确实删除一行很容易Delete[Ss,t]。对于列,我想我可以这样做
Transpose[Delete[Transpose[Ss,t]]]
我的主要关注点是以最快的方式执行它。
更一般地说,是否有一个Mathematica运算符可以像对行一样轻松地对矩阵列进行切片和分解,而不必求助于转置?
Transpose
和Delete
相对直观地完成。比如,如果我有一个{10x10}的矩阵,并且我想要删除第2、4和8列,一种可能的方法是:mydata = Array[Subscript[a, ##] &, {10, 10}]; Transpose@Delete[Transpose@mydata, {{2}, {4}, {8}}]
。也可以使用Drop
来完成,例如Drop[Drop[Drop[mydata, None, {2}], None, {3}], None, {6}]
,但这很麻烦。有没有更好的方法来从矩阵中删除不连续的列呢? - 681234