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

标签 python matlab numpy code-translation

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

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

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

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

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

最佳答案

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

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

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

关于python - 将Matlab的向量赋值翻译成Python形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16398457/

相关文章:

matlab - 四舍五入到 n 位有效数字

python - 根据应用于另一个数组的 bool 表达式选择一个数组的值

python - python numpy中的长(> 2000万个元素)数组求和

即使添加到 PATH 后,Windows CMD 也无法识别 python

python - Django 1.9 错误 - 'User' 对象没有属性 'profile'

arrays - 在 MATLAB 中使用矩阵进行矩阵索引

Matlab如何轻松循环圆形数组

python - R apply在Python中的匹配速度

python - Python 样条曲线(使用控制节点和端点)

python - 为什么是: Python 'Import x' then Re- 'import x as y' clobbers import of x?