Skip to main content
 首页 » 编程设计

python之将Matlab的向量赋值翻译成Python形式

2025年05月04日8bonelee

我正在尝试将一些 Matlab 代码翻译成 Python(使用 NumPy)。我对 Matlab 不是很熟悉,我遇到了我无法解析的一行:

w(idx(1:p, 1), 1) = v(idx(1:p, 1), 1) - theta; 

我猜测 x 的 p 长头部被用作索引来选择 的 p 条目>w,w 中的条目将被 v 中的相应条目替换(减去标量 theta)。

在 Octave 中乱搞,这似乎是对它正在做的事情的准确描述,但我找不到任何相关的文档。

无论如何,用 Python 重写这段代码的最佳方法是什么?我查看了 NumPy 的“暂定教程”,试图找到一种优雅的方法,它看起来像 this。可能是我要找的。但是,我在让它看起来不错时遇到了麻烦,尤其是对于赋值运算符。是否有更优雅或 Python 惯用的方法来执行此赋值操作?

请您参考如下方法:

这基本上是@Dan 在评论中写的内容,但说明了 python 中从零开始的索引:

w[idx[:p, 0], 0] = v[idx[:p, 0], 0] - theta 

不确定您是否想要比这更优雅的东西。如果只应修改第一列,则需要这些零。