本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一些负面消息对国内各个高校和业界影响很大。但是我们作为技术人员,更是要奋发努力,拼搏上进,学好技术,才能师夷长技以制夷,为中华之崛起而读书!
本文很多摘录自图书资料,不做任何商业用途,仅做技术分享,侵权删除!请不要放弃自己的理想和道路,加油!!
>> y = rand(2,1,3)
z = squeeze(y)
y(:,:,1) =
0.8147
0.9058
y(:,:,2) =
0.1270
0.9134
y(:,:,3) =
0.6324
0.0975
z =
0.8147 0.1270 0.6324
0.9058 0.9134 0.0975
将三维数组的索引转换为单个线性索引。
创建数组 A,并确定对应于 (2,1,2) 位置的元素的线性索引。
A = rand(3,4,2);
linearInd = sub2ind(size(A),2,1,2)
linearInd = 14
检查这两个索引版本是否引用 A 的同一元素。
A(2,1,2)
ans = 0.4854
A(14)
ans = 0.4854
[I,J] = ind2sub(siz,IND) [I1,I2,I3,...,In] = ind2sub(siz,IND)
ind2sub 函数确定与数组的单个索引对应的等效下标值。
[I,J] = ind2sub(siz,IND) 返回矩阵 I 和 J,其中包含与矩阵 IND(大小为 siz 的矩阵)中的每个线性索引对应的对等行下标和列下标。siz 是一个包含 ndim(A) 个元素(此示例为 2 个元素)的向量,其中 siz(1) 为行数,siz(2) 为列数。
注意 对于矩阵,[I,J] = ind2sub(size(A),find(A>5)) 与 [I,J] = find(A>5) 返回相同的值。
[I1,I2,I3,...,In] = ind2sub(siz,IND) 返回 n 个下标数组 I1,I2,...,In,其中包含等效于 IND(大小为 siz 的数组)的多维数组下标。siz 是一个指定每个数组维度大小的 n 元素向量。
IND 输入可以是 single、double 或任意整数类型。输出始终属于 double 类。
[rowsub colsub] = ind2sub(dims, indices) rowsub = 1 2 1 2 1 2 1 2 colsub = 1 1 2 2 3 3 4 4
[rowsub] = ind2sub(dims, indices) rowsub = 1 2 3 4 5 6 7 8