Arrays 在Matlab中索引m维数组(m不是常数)
我在Matlab中有一个索引问题。假设我有一个m维数组a,其中m取决于问题 假设我有带索引的向量Arrays 在Matlab中索引m维数组(m不是常数),arrays,matlab,multidimensional-array,Arrays,Matlab,Multidimensional Array,我在Matlab中有一个索引问题。假设我有一个m维数组a,其中m取决于问题 假设我有带索引的向量 x = [i2, ..., im] 我想取向量 A(:, i_2, ..., i_m) 。如果m在所有情况下都是常数,那么就不那么困难了。你可以说 i_j = x(j), j = 2, ..., m 。是否可以在没有if循环的情况下执行此操作 (所以不用说‘如果m==2,那么……如果m==3,那么……’等等) 感谢您的帮助将x转换为单元阵列并从中生成一个: A = rand(3,3,3,3,3
x = [i2, ..., im]
我想取向量
A(:, i_2, ..., i_m)
。如果m在所有情况下都是常数,那么就不那么困难了。你可以说
i_j = x(j), j = 2, ..., m
。是否可以在没有if循环的情况下执行此操作
(所以不用说‘如果m==2,那么……如果m==3,那么……’等等)
感谢您的帮助将
x
转换为单元阵列并从中生成一个:
A = rand(3,3,3,3,3); % example A
x = [2 1 3 2]; % example x
ind = num2cell(x);
result = A(:, ind{:});
谢谢,这正是我想要的:-)一个巧妙的小技巧:你可以在你想要的任何地方向单元格数组添加
:'
。例如:ind=[{':'}num2cell(x)];结果=A(ind{:})代码>