Nas*_*ser 5 wolfram-mathematica
有没有办法MatrixForm在线上水平显示行向量而不是像列向量那样垂直显示?因为这有时让我困惑.你认为在矩阵形式周围编写包装来调整这种行为会很困难吗?
例如,这是一个2乘2的矩阵.行显示与列相同.两者都显示为垂直.

问题:是否可以将MatrixForm显示行向量水平放置而不是垂直放置?
对不起,如果之前有人询问,快速搜索没有显示任何内容.
谢谢
更新(1)
fyi,这是在Matlab中,它自动水平和垂直打印行,我希望有这样的东西.但是我现在将使用Heike的建议,因为它解决了这个问题,只需要额外打字.

更新(2)
使用Hilderic解决方案也很好,我总是很难以我能读取的方式打印3D矩阵.现在它正在使用这个{}技巧

小智 6
对于这两个arrayname[[All,1]]和arrayname[[1,All]],Part提供了一个载体,和阵列式无法确定它具有"方向"的方式.因此,它总是将矢量打印为列.
关于你唯一能做的就是为行向量提供自己的输出例程,例如,将它包装在一个封闭列表中,然后将其转换回(单行)矩阵:
rowVector[a_List] := MatrixForm[{a}]
columnVector = MatrixForm (*for symmetry*)
Run Code Online (Sandbox Code Playgroud)
但是,仍然需要记住矢量是来自行还是列.
或者您可以自己编写RowForm函数,例如:
RowForm[(m_)?VectorQ] := Row[{"(",Row[m," "],
")"}, "\[MediumSpace]"];
Run Code Online (Sandbox Code Playgroud)
然后
RowForm[twoRowsMatrix[[All,1]]]
Run Code Online (Sandbox Code Playgroud)
看起来很好
或者,如果你真的只关心显示向量,你可以这样做:
twoRowsMatrix = {{a11, a12}, {a21, a22}};
TakeColumn[m_?MatrixQ, i_] := (Print[MatrixForm[#]]; #) &@m[[All, i]];
TakeRow[m_?MatrixQ, i_] := (Print[MatrixForm[{#}]]; #) &@m[[i]];
TakeColumn[twoRowsMatrix, 1]
TakeRow[twoRowsMatrix, 1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1330 次 |
| 最近记录: |