Matlab中ind2sub和sub2ind函数

MATLAB中ind2sub和sub2ind这对函数,是互逆的一对函数。ind2sub把数组或者矩阵的线性索引转化为相应的下标;sub2ind则正好相反,将下标转化为线性索引。
ind2sub的函数参考:

[ij] = ind2sub(siz,IND)
[I1,I2,I3,...,In] = ind2sub(siz,IND)

sub2ind的函数参考:

linearInd =sub2ind(matrixSize, rowSub, colSub)
linearInd = sub2ind(arraySize, dim1Sub,dim2Sub, dim3Sub, ...)

上述的函数参考中,第一个都是二维的情况,第二个扩展到了多维空间。

matlab数组中元素引用有三种方式:
1.索引:就是由一个整数表示数组中的某一数据,Matlab中按照列进行排序
2.下标:如果是二维,就是行号和列号
3.布尔数

sub2ind函数:就是将下标转换为索引
ind2sub函数:就是在指定矩阵尺寸(size)前提下将给定的索引(index)转化成行列形式
例:

A = magic(2)
      1  3 
      4  2 

因为matlab中矩阵按照列进行排列,所以对应元素的索引为:

     1  3
     2  4

下面使用sub2ind函数查看对应的索引:

sub2ind(size(A),2,1)
    2

搜索矩阵A的第二行第一列对应的索引号2。

[i,j] = ind2sub(size(A),3)
  i=1,j=2

上式即求矩阵A中第三个元素对应的行、列索引号(矩阵中的位置),矩阵A中第三个元素是3,位于第一行第二列。因为A是一个二维矩阵,所以用两个参数来接收返回值。

A(sub2ind(size(A),1,2))
  3

参考链接:
http://blog.sina.com.cn/s/blog_7054a1960102vyby.html

  • 10
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值