Wolfram mathematica 如何从下三角矩阵中获取元素列表

Wolfram mathematica 如何从下三角矩阵中获取元素列表,wolfram-mathematica,mathematica-8,Wolfram Mathematica,Mathematica 8,我对数学一无所知 我有一个下三角矩阵,定义如下 A=Table[If[i>j,下标[A,i,j],0],{i,s},{j,s}] 我想把下面的三角形元素列在一个列表中。例如,当s=2时,列表将包含listofeelement={a_{2,1},对于s=3,listofeelement={a_{2,1},a_{3,1},a_{3,2} 我在Mathematica怎么做 提前非常感谢您举个例子 A = RandomReal[{0, 1}, {3, 3}]; MatrixForm[A] M = Fir

我对数学一无所知

我有一个下三角矩阵,定义如下

A=Table[If[i>j,下标[A,i,j],0],{i,s},{j,s}]

我想把下面的三角形元素列在一个列表中。例如,当
s=2
时,列表将包含
listofeelement={a_{2,1}
,对于
s=3
listofeelement={a_{2,1},a_{3,1},a_{3,2}

我在Mathematica怎么做

提前非常感谢您

举个例子

A = RandomReal[{0, 1}, {3, 3}];
MatrixForm[A]
M = First[Dimensions[A]];
Flatten[A[[# + 1 ;;, #]] & /@ Range[M - 1]]
产生:

(0.586886   0.968229    0.543306
 0.107212   0.0492116   0.103052
 0.0569797  0.429895    0.70289
)

{0.107212,0.0569797,0.429895}
比如这个

A = RandomReal[{0, 1}, {3, 3}];
MatrixForm[A]
M = First[Dimensions[A]];
Flatten[A[[# + 1 ;;, #]] & /@ Range[M - 1]]
产生:

(0.586886   0.968229    0.543306
 0.107212   0.0492116   0.103052
 0.0569797  0.429895    0.70289
)

{0.107212,0.0569797,0.429895}

您可以使用
拾取
和选择矩阵:

selectionMatrix = LowerTriangularize[ConstantArray[1, {s, s}], -1]
selectionMatrix
现在是一个较低的三角形矩阵,您可以在
a
中选择
元素。然后得到
A
的元素,如下所示:

listOfElements = Flatten @ Pick[A, selectionMatrix, 1]

编辑:当然,确保您定义了
s

您可以将
拾取
与选择矩阵一起使用:

selectionMatrix = LowerTriangularize[ConstantArray[1, {s, s}], -1]
selectionMatrix
现在是一个较低的三角形矩阵,您可以在
a
中选择
元素。然后得到
A
的元素,如下所示:

listOfElements = Flatten @ Pick[A, selectionMatrix, 1]

编辑:当然,确保您定义了
s

@Kuba提取链接问题中的元素似乎是反对角线的,而OP似乎对“列式”提取感兴趣……您可以这样做:
Select[Flatten@A,#=!=0&]
,假设下三角部分没有明确的零。@对链接问题中元素的Kuba提取似乎是反对角线的,而OP似乎对“列式”提取感兴趣……您可以这样做:
Select[Flatten@A,#=!=0&]
,假设下三角部分没有明确的零。