gpt4 book ai didi

python - 用 Numpy 解释 Matlab 索引/切片

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:57 27 4
gpt4 key购买 nike

我正在将一些 Matlab 代码转换为 Python,我发现了一行我无法理解:

Y = reshape(X(j+(1:a*b),:),[b,a,p])

我知道 reshape 函数有一个 numpy analog我已经阅读了 Matrix Indexing in MATLAB文档,但我似乎无法充分理解该行以将其转换为 numpy 索引/切片。

我尝试了 online converter OMPC但它使用 functions that are not defined outside of it (如 mslice):

Y = reshape(X(j + (mslice[1:a * b]), mslice[:]), mcat([b, a, p]))

我也试过 SMOP converter但结果也很难理解:

Y = reshape(X(j + (arange(1, dot(a, b))), arange()), concat([b, a, p]))

你能解释一下简单的 Matlab 到 numpy 索引/切片规则的转换吗?

最佳答案

Y = X[j+np.arange(a*b),:].reshape((b,a,p))

不知道你到底想要什么,这是 matlab 行到 python 的翻译。

请注意,matlab 索引从 1 开始,而 numpy 的索引从 0 开始。因此,根据其他行,内行可能是 np.arange(a*b)。或 np.arange(1,a*b) .

此外,您实际上并不需要使用 X 的第二个索引, 所以 X[1,:]==X[1]True

关于python - 用 Numpy 解释 Matlab 索引/切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50976914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com