【问题标题】:matlab syntax of " ' "“'”的matlab语法
【发布时间】:2023-03-30 14:30:01
【问题描述】:

我正在尝试将一些 matlab 代码转换为 Python。我对matlab几乎没有经验,但我只需要借用一点功能。我被困在这部分:

在本例中,V 是一个 3x3 矩阵。

A = V(:,3)  % i.e. A = [1 2 3]
par = [-(A(2:3))'/A(1)]

具体来说,我对'.

我一直在使用这个资源在 matlab 和 Python 之间切换: http://mathesaurus.sourceforge.net/matlab-numpy.html 然而,它是模棱两可的,因为 ' 符号似乎有多种用途。当我搜索其他文档时,我找不到 '.

任何帮助将不胜感激。理想情况下,我想获得 Python 等价物,但任何解释都会有所帮助。谢谢!

【问题讨论】:

  • 只是转置,不是吗?在 Python 中,使用“.T”(用于 Numpy)
  • 请注意,如果在您的实现中A 是一个一维 数组(例如A.shape == (3,)),那么转置实际上不会做任何事情。 A.T 仍然是一个形状为 (3,) 的一维数组。
  • @WarrenWeckesser 不完全确定您的意思,但我想不出A(2:3) 等于A(2:3)' 的任何合理情况
  • @DennisJaheruddin:我说的是 numpy 数组。在 numpy 中,转置操作只是反转数组的维度。如果数组只有一维,则转置是“无操作”——它什么也不做。
  • @WarrenWeckesser 嗯,事实上A(2:3) 是 2x1,因此对于数据类型 array,转置确实没有意义,如下所述:stackoverflow.com/questions/11885503/… 也许在 numpy 中使用数据类型 matrix更好的翻译。 (其实就是问题中提到的这个词)

标签: python matlab syntax numpy


【解决方案1】:

使用 a.conj().transpose() 进行 Matlab 的转置 (a')

a.transpose() 用于 Matlab 的非共轭转置(a.'transpose(a)

【讨论】:

  • A(3:2) 是单个值,所以我认为转置没有意义。 A = [ 0.08390008 -0.58820993 -0.57735027 ] 谢谢!
  • 首先在您的问题中是A(2:3)。其次,这会输出两个值[A(2) A(3)]。第三,转置则为transpose([A(2) A(3)])(即行向量变为列向量等)
  • 好的,我明白了。在 Python 中,索引不包括最后一个元素,我没有意识到在 matlab 中并非如此。谢谢。
【解决方案2】:

只是返回矩阵的转置。

在 python 中使用 numpy,你可以执行以下操作:

a.T
a.transpose()

两者都将返回相同的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多