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&]
,假设下三角部分没有明确的零。