Matlab下标转换函数ind2sub,sub2int

分类: 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 =
J =
注:IND为一维索引值,因此I,J均为一维向量,I,J个数等于s维数(二维)
栗子2:
IND = [3 4;5 6];
s = [2,2,2];
[I,J,K] = ind2sub(s,IND)
I =
J =
K =
注: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 =
从运算结果可以看出,在矩阵A中,下标(1,1)的索引值为1,下标(2,1)的索引值为2,下标(3,2)的索引值为7,下标(4,2)的索引值为8