问题的思路是首先生成所有访问data时的二元下标组合,然后用sub2ind转换成一元索引,然后就可以向量化赋值。[M, N] = size(b);sub_i = repmat((1:N), [M 1]); % 构造下标i的序列ind = sub2ind(size(data), b(:), sub_i(:));c = data(ind);