加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Matlab下标转换函数ind2sub,sub2int

(2015-11-11 22:00:37)
分类: Matlab
ind2sub 该函数用于把数组中元素索引值转换为该元素在数组中对应的下标
语法格式:
[I,J] = ind2sub(siz,IND)
这种调用格式适用于二维数组,其中siz是数组的尺寸,通常通过调用size函数获取。IND则是索引值,返回值为索引值为IND的元素在该二维数组内的行列下标。
[I1,I2,I3,...,In] = ind2sub(siz,IND)
这种调用格式适用于多维情况。I1, I2, ..., In个数 = siz数组的维数,I1,I2,...,In的维数 = IND的维数
请看栗子:

IND = [3 4 5 6]
s = [3,3];
[I,J] = ind2sub(s,IND)

I =
     3     1     2     3

J =
     1     2     2     2

注:IND为一维索引值,因此I,J均为一维向量,I,J个数等于s维数(二维)

栗子2:

IND = [3 4;5 6];
s = [2,2,2];
[I,J,K] = ind2sub(s,IND)

I =
     1     2
     1     2

J =
     2     2
     1     1

K =
     1     1
     2     2
注:IND为二维索引矩阵,因此IND某元素的下标即为I,J,K对应元素,I,J,K个数依然等于s维数(三维)

类似的,
ind=sub2ind(siz,I,J):siz表示要转换的矩阵的行列数,I是要转换矩阵的行标,J是要转换矩阵的列标。I,J的行列数必须相同。ind为输出参数,其行列数与I,J相同。ind即为索引。
>> ind=sub2ind(size(A),[1,2;3,4],[1,1;2,2])
则显示
ind =
     1     2
     7     8

从运算结果可以看出,在矩阵A中,下标(1,1)的索引值为1,下标(2,1)的索引值为2,下标(3,2)的索引值为7,下标(4,2)的索引值为8

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有