Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Matlab中索引m维数组(m不是常数)_Arrays_Matlab_Multidimensional Array - Fatal编程技术网

Arrays 在Matlab中索引m维数组(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

我在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); % example A
x = [2 1 3 2]; % example x
ind = num2cell(x);
result = A(:, ind{:});

谢谢,这正是我想要的:-)一个巧妙的小技巧:你可以在你想要的任何地方向单元格数组添加
:'
。例如:
ind=[{':'}num2cell(x)];结果=A(ind{:})