Matrix Mathematica中删除矩阵列的简单方法

Matrix Mathematica中删除矩阵列的简单方法,matrix,wolfram-mathematica,operations,Matrix,Wolfram Mathematica,Operations,我试图删除mathematica中的两个矩阵。一种不雅观的做法如下所示,即在新矩阵中指定为 S = Table[ Ss[[If[i < t, i, i + 1]]][[If[j < t, j, j + 1]]], {i, q}, {j, q}]; 我主要关心的是以尽可能快的方式执行 更一般地说,是否有Mathematica运算符使矩阵列的切片和骰子操作与行一样容易,而无需借助转置?我想您正在寻找: Drop[Ss,{t},{t}] 时间: ClearAll["Gl

我试图删除mathematica中的两个矩阵。一种不雅观的做法如下所示,即在新矩阵中指定为

S = Table[
    Ss[[If[i < t, i, i + 1]]][[If[j < t, j, j + 1]]], {i, q}, {j, q}];  
我主要关心的是以尽可能快的方式执行


更一般地说,是否有Mathematica运算符使矩阵列的切片和骰子操作与行一样容易,而无需借助转置?

我想您正在寻找:

Drop[Ss,{t},{t}]  
时间:

ClearAll["Global`*"];

First@Timing[a = RandomInteger[1000, {5000, 5000}];]
0.34

First@Timing[Drop[a, {2}, {2}]]
0.11


这看起来很适合删除一行和一列(我认为这是所要求的)。要只放下一个col,一定要放下[mat,None,{colnum}]。@Daniel谢谢。重读问题的最后一部分,我想知道你的评论是否是OP的目的。不过我不确定。@belisarius,@daniel,非常感谢。由于性格的限制,我提出了一个新的问题来扩展我在这里提出的问题检查:检查一个非常好的花圈方法
ClearAll["Global`*"];

First@Timing[a = RandomInteger[1000, {5000, 5000}];]
0.34

First@Timing[Drop[a, {2}, {2}]]
0.11
First@Timing[Transpose@Delete[Transpose@Delete[a, 2], 2]]
0.5