谷歌搜索引导我到这个链接:

https://github.com/jjakeman/pyheat/blob/master/utilities/math_utils.py

据我所知,在MATLAB中没有直接实现这些功能.

事实证明我无法正确阅读文档.如果你想要sub2ind的功能,你需要ravel_multi_index功能.函数声明表明您需要两个输入.第一个输入是2D numpy数组,其中每一行是特定维度的位置.例如,如果要在2D矩阵上应用ind2sub,则应指定2D numpy数组,其中第一行包含所需的所有行位置,第二行包含所需的所有列位置.第二个输入是确定每个维度大小的元组,因此对于2D数组,它是行数和列数.

要做ind2sub,你需要unravel_index功能.第一个输入是一个线性索引数组,您希望将其转换为数组中每个维度的位置.第二个输入是像以前一样的维度元组.

如果你想尝试自己实现这些,我将把底部的帖子留给后人.

但是,您当然可以自己实现这些.我假设是因为你用numpy标记你的帖子,你会想要一个numpy-esque解决方案.请记住,在numpy中,您访问行major,而不是column major中的元素,因此给定两个数组,一个用于行,另一个用于列索引(0-indexed),2D矩阵的sub2ind非常简单:

def sub2ind(array_shape, rows, cols):

return rows*array_shape[1] + cols

array_shape是一个包含两个元素的数组,其中第一个元素是矩阵中的行数,第二个元素是列数.如果您还记得,您可以通过以下方式访问行主矩阵中的元素:

ind = r*cols + c

(r,c)是你想要的行和列索引,只要它是0索引的.换句话说,你会使用整数除法和模数:

def ind2sub(array_shape, ind):

rows = (ind.astype('int') / array_shape[1])

cols = (ind.astype('int') % array_shape[1]) # or numpy.mod(ind.astype('int'), array_shape[1])

return (rows, cols)

这里,输出是一个双元素元组,其中第一个元素是行位置,第二个元素是列位置.要总结ind2sub,要访问所需的行,可以使用线性索引并对列进行整数除法.要获得所需的列,可以找到模数或余数.进入3个维度以及之后会有点复杂.我将让您看看上面提到的链接以获取更多详细信息.

显然,我没有在上面的函数中进行任何错误检查,因此在这种情况下你显然会使用array_shape.做你想做的更好的方法是:

def sub2ind(array_shape, rows, cols):

ind = rows*array_shape[1] + cols

ind[ind < 0] = -1

ind[ind >= array_shape[0]*array_shape[1]] = -1

return ind

def ind2sub(array_shape, ind):

ind[ind < 0] = -1

ind[ind >= array_shape[0]*array_shape[1]] = -1

rows = (ind.astype('int') / array_shape[1])

cols = ind % array_shape[1]

return (rows, cols)

我做了一些基本的错误检查,以确保ind2sub的sub2ind或线性索引没有行或列超出范围.我将这些位置设置为-1,这样你就知道你搞砸了某个地方.

祝好运!

python的ind_MATLAB中的ind2sub相当于Python相关推荐

  1. python 替换array中的值_利用Python提取视频中的字幕(文字识别)

    我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...

  2. python删除字符串中重复字符_从Python中删除字符串标点符号的最佳方法

    似乎有一个比以下更简单的方法: 1 2 3import string s ="string. With. Punctuation?" # Sample string out = s ...

  3. python统计句子中单词个数_【python统计单词数量】作文写作问答 - 归教作文网

    如何用python统计一个txt文件中某个单词出现的次数 1.首先,定义一个变量,保存要统计的英文文章. 2.接着,定义两个数组,保存文章中的单词,以及各单词的词频. 3.从文章中分割出所有的单词,保 ...

  4. python在软件测试中的应用_探索Python在数据库测试中的应用

    Python(派森)语言是一种面向对象的用途非常广泛的编程语言,具有非常清晰的语法特点,适用于多种操作系统,可以在Windows和Unix这样的系统中运行.目前在国际上非常流行,正在得到越来越多的应用 ...

  5. python移动文件中某个内容_如果python中的某些文件类型,则移动文件并创建目录...

    这可能是一个简单的问题,但我对 python和编程一般都是新手. 我正在研究一个简单的程序,在镜像源位置的目录结构时,将.mp3文件从一个位置复制/移动到另一个位置.到目前为止我的工作,但它也在目标位 ...

  6. python中函数的调用_慢步python,编程中函数的概念,python中函数的声明和调用

    函数,曾经是一个很高大尚的概念.笔者是在高中数学里认识的函数,先是从y=2x+3 这条代数式开始的.y是因变量,x是自变量,y因为x取值的变化而变化. 再后来式子变成这样:f(x)=2x+3,f(x) ...

  7. python向mysql中添加数据_通过python操控MYSQL添加数据,并将数据添加到EXCEL中-阿里云开发者社区...

    第一步 在python中创建mysql数据表 import pymysql #导入模块 def getCon(): #联接到数据库,并封装循环使用,db是数据库名字 conn = pymysql.co ...

  8. python删除字符串中的字母_在Python中删除字符串中的大写字母

    我想写一个函数消除一个字符串和2个可选参数.第一个可选参数(bad_characters)取一个字母,第三个参数(case_sensitive)取一个布尔值.该函数应该接受一个字符串s并移除bad_c ...

  9. python 获取json中最大值_详细解析 Python 爬取 bilibili 的视频、弹幕以及封面

    本文使用 Zhihu On VSCode 创作并发布 环境 用到的 Python 库: Python 3.7 requests moviepy json re os 浏览器:Firefox/ 83.0 ...

最新文章

  1. SAP SD 客户信贷管理解析
  2. python国际象棋ai程序_用Python编写一个国际象棋AI程序
  3. 如何使用 MySQL 的 IDE 导出导入数据表文件(以 Navicat for MySQL 导出导入 Excel 文件为例)
  4. HDU-简易版之最短距离(最短路)
  5. linux文件共享之samba,nfs的搭建
  6. Atitit postgresql data type 数据类型与mysql对应表 数据库常用数据类型 Postgre Mysql 整数 intgreter Int 小数 numeric FL
  7. 从shell(终端)中退出python
  8. 网课答题查询助手(免费)
  9. 【Sass/SCSS】预加载器中的“轩辕剑”
  10. php 判断字数,php统计字数
  11. 解决Office在修改安装路径后,提示“操作系统当前配置不能运行此程序”的问题
  12. git clone 使用代理加速
  13. JavaScript 中 10 个需要掌握基础的问题
  14. 体验为王的时代,如何提高售后服务环节的客户参与度?
  15. 能帮你找到网页设计灵感的16个网站-沪江UI团队资料翻译组
  16. 新媒体绩效考核系数计算公式_20种新的绩效最佳做法
  17. 【Linux】用户配置文件(passwd shadow | group gshadow)
  18. 电影《2012》讲世界末日该不该禁播?
  19. java-php-python-ssm-手机电子商城-计算机毕业设计
  20. 14 MySQL-视图

热门文章

  1. GD32E230 SPI DMA通信(读取传感器数据)
  2. [Web技术]用户信息管理系统
  3. Python项目-学生信息管理系统
  4. 功夫熊猫 中英文对照
  5. python灰度图片格式_[Python图像处理] 十五.图像的灰度线性变换
  6. Carbon生成代码图片详细教程
  7. 也谈货币需求与利率的关系
  8. QSettings 用法(例子)
  9. 美国首只杠杆比特币期货ETF开盘,成交量近550万美元!
  10. 浅谈 Dancing Links X 算法