Matlab 中 3 维矩阵的子集

A subset of 3 dimensional matrix in Matlab

假设我们有一个 3 维矩阵 AX_IND = 4:8Y_IND = f(X_IND)f 是一个类似于 2*x^2+1 的函数。我如何从 A:

中提取以下向量
a = A(X_IND,Y_IND,3)

但是,MATLAB 中的上述等式得出一个矩阵,而结果应该是一个数组,因为 Y_INDX_IND 的函数。

使用sub2ind to build a linear index。这是一个例子:

>> A = randi(9,2,3,3)
A(:,:,1) =
     6     8     8
     5     2     7
A(:,:,2) =
     8     7     9
     8     7     2
A(:,:,3) =
     8     9     8
     2     4     8

>> X_IND = [1 2]; 
>> Y_IND = X_IND + 1;
>> Z_IND = 3;

>> Z_IND = repmat(3, size(X_IND)); %// all indices should have the same size

>> ind = sub2ind(size(A), X_IND, Y_IND, Z_IND); %// build linear index

>> A(ind)
ans =
     9     8