2016-09-20 67 views
0

我是Mathematica的新手。如何从下三角矩阵得到元素列表

我有一个下三角矩阵定义为遵循

A = Table[If[i > j, Subscript[a, i, j], 0], {i, s}, {j, s}];

我想在一个列表中的下三角元素。例如,当s = 2,该列表将包含listOfElement = {a_{2,1}}s = 3listOfElement = {a_{2,1},a_{3,1},a_{3,2}}

我怎样才能做到这一点的数学?

非常感谢你提前

+0

http://mathematica.stackexchange.com/q/99390/5478 – Kuba

+0

@Kuba提取链接问题中的元素似乎是反对角线的,而OP似乎对“列式”提取感兴趣。 .. – ewcz

+0

你可以这样做:'选择[Flatten @ A,#=!= 0&]',假设下三角部分没有明确的零。 – agentp

回答

2

例如该

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} 
2

可以一起使用Pick有选择矩阵:

selectionMatrix = LowerTriangularize[ConstantArray[1, {s, s}], -1] 

selectionMatrix现在是一个下三角矩阵,其中您想要Pick中的元素A。那么你得到的A元素是这样的:

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

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

相关问题