matlab中ind2sub函数,Python中的MATLAB ind2sub等价

这篇博客介绍了如何在Python中实现类似MATLAB的ind2sub功能,用于将线性索引转换为二维数组的行和列索引。通过提供两个numpy数组分别表示行和列位置,以及一个包含数组维度的元组,可以实现这一转换。同时,文章还提供了带有错误检查的sub2ind和ind2sub函数实现。
摘要由CSDN通过智能技术生成

据我所知,这些函数在MATLAB中没有直接实现。

结果我看不懂文件。如果您想要sub2ind的功能,那么您需要^{}函数。函数声明说您需要两个输入。第一个输入是2Dnumpy数组,其中每一行是特定维度的位置。例如,如果要对2D矩阵应用ind2sub,可以指定2Dnumpy数组,其中第一行包含所需的所有行位置,第二行包含所需的所有列位置。第二个输入是tuple,它决定每个维度的大小,所以对于2D数组,它是行和列的数量。

要执行ind2sub,您需要^{}函数。第一个输入是要转换为数组中每个维度位置的线性索引数组。第二个输入与前面一样是维度的元组。

我将把这篇文章放在最底层留给后人,以防你想自己尝试实现这些。

然而,你当然可以自己实现这些。我假设因为你用numpy标记了你的文章,你会想要一个numpy式的解决方案。记住,在numpy中,访问rowmajor中的元素,而不是columnmajor中的元素,因此给定两个数组,一个用于row,另一个用于column index(0-indexed),sub2ind对于2D矩阵非常简单:def sub2ind(array_shape, rows, cols):

return rows*array_shape[1] + cols

array_shape是由两个元素组成的数组,其中第一个元素是矩阵中的行数,第二个元素是列数。如果您还记得,可以通过以下方式访问行主矩阵中的元素:ind = r*cols + c

(r,c)是所需的行和列索引,前提是它是0索引的。相反,可以使用整数除法和模数:def ind2sub(arra

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值