>> z(1,1,1,1)=2;
z(1,1,1,2)=4;
whos z
Name Size Bytes Class Attributes
z 1x1x1x2 16 double
多维下标和线性下标的变换
%多维下标变换到线性下标
>> dim1 = 2;
>> dim2 = 4;
>> m = zeros(12,9);
>> sub2ind(size(m),dim1,dim2)
ans =
38
%线性下标变换到多维下标
>> [dim1t dim2t] = ind2sub(size(m),38)
dim1t =
2
dim2t =
4
采用高维数组的下标变换实现更方便的并行计算
dim1 = 100;
dim2 = 200;
dim3 = 300;
z = zeros(dim1,dim2,dim3);
sz = [dim1 dim2 dim3];
parfor ii = 1 : dim1*dim2*dim3
[tdim1, tdim2, tdim3] = ind2sub(sz,ii);
end