MATLAB/Python数组的差异?

2024-05-29 06:13:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到以下信息:

  • redIdx:一个2x1矩阵,包含值(289485、289486)
  • 图像:366x791x3 uint8矩阵(图像)
  • 图2:零矩阵,sape与图相同

在MATLAB中,如果我执行image2(redIdx),它将返回一个带有值(0,0)的2x1矩阵,如果我执行image(redIdx),它将返回一个带有值(94,83)的2x1矩阵

但在Python中,如果我执行image2[redIdx]或image[redIdx],它将返回下一个错误:索引2879485超出了大小为366的轴0的界限

如何获得与MATLAB相同的结果


Tags: 图像image信息错误矩阵matlabsapeuint8
1条回答
网友
1楼 · 发布于 2024-05-29 06:13:30

在MATLAB中,当使用单个索引(相对于多个索引)对数组进行索引时,使用linear indexing。在相同的情况下,Python使用索引索引到第一个维度,返回一个切片。redIdx包含多个值这一事实与此无关,它是一个1D索引操作

要在Python中复制线性索引,可以flatten数组,然后索引:

image.flatten('K')[redIdx]

This Q&A展示了如何从单个线性索引计算索引,这将是上述方法的一个更复杂的替代方法

相关问题 更多 >

    热门问题