【问题标题】:Finding i-th row in a matrix in wolfram mathematica在 wolfram mathematica 中查找矩阵中的第 i 行
【发布时间】:2015-02-18 03:12:44
【问题描述】:

我试图在mathematica 中将列矩阵和行矩阵相乘。但是mathematica将行矩阵作为列矩阵。所以 multipy 函数不起作用。我的代码是

`Y = Inverse[S];
Print["Y=", MatrixForm[Y]];
For[i = 1, i <= n, i++,
Subscript[P, i] = MatrixForm[S[[All, i]].Y[[i]]];
Print["CarpimS=", MatrixForm[S[[All, i]]]];
Print["CarpimY=", MatrixForm[Y[[i]]]];
Print["P=", Subscript[P, i]];
];  

如果有人知道这种情况请回答

【问题讨论】:

  • 对你的问题有点旁白,但你很少分配等于输出形式的东西,即做 Subscript[P, i] = S[[All, i]].Y[[i]]; ,然后在 Print 语句中需要的地方应用 MatrixForm . (当然这里Dot 产生一个标量,所以不需要它。)

标签: wolfram-mathematica


【解决方案1】:

这是一个写得很糟糕的问题,所以我将不得不做出一些猜测。您的代码似乎与您的问题无关,但有以下例外:S[[All, i]].Y[[i]]。根据您的描述,我猜我们可以说S 是 k 乘以 k,Y 也是。如果您的目标是DotS 的第 i 列通过其逆 Y 的第 i 行,那么您所拥有的很好:您将每个向量生成为一维向量,然后生成一个标量产品。但是你说你没有得到你想要的,所以我猜你想要的是外部产品。

mS = IdentityMatrix[5];
mS[[3, 3]] = 99;
mY = Inverse[mS];
mS[[All, 3]].mY[[3]]  (* scalar product *)
Outer[Times, mS[[All, 3]], mY[[3]]] (* outer product *)

如果我猜错了,您将不得不努力改进您的问题。

【讨论】:

  • 艾伦非常感谢来自土耳其的你 :) 外部产品解决了我的问题。我的问题可能写得不好,但你的猜测解决了我的问题。使用标量积是我的代码中的主要问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
  • 2019-02-18
  • 1970-01-01
相关资源
最近更新 更多