Phi*_*hil 8 operations wolfram-mathematica matrix
我试图删除mathematica中的矩阵.这样做的一种不优雅的方式就像我在下面所做的那样,即在新的矩阵中指定它
S = Table[
Ss[[If[i < t, i, i + 1]]][[If[j < t, j, j + 1]]], {i, q}, {j, q}];
Run Code Online (Sandbox Code Playgroud)
目标是消除行和列t.
确实删除一行很容易删除[Ss,t].对于列列,我想我可以做
Transpose[Delete[Transpose[Ss,t]]]
Run Code Online (Sandbox Code Playgroud)
我主要关心的是以尽可能快的方式执行它.
更一般地说,是否有一个Mathematica运算符,它可以像对行进行切片和切块一样容易,而无需使用转置?
Dr.*_*ius 14
我想你正在寻找:
Drop[Ss,{t},{t}]
Run Code Online (Sandbox Code Playgroud)
时序:
ClearAll["Global`*"];
First@Timing[a = RandomInteger[1000, {5000, 5000}];]
0.34
First@Timing[Drop[a, {2}, {2}]]
0.11
Run Code Online (Sandbox Code Playgroud)
而
First@Timing[Transpose@Delete[Transpose@Delete[a, 2], 2]]
0.5
Run Code Online (Sandbox Code Playgroud)