给定沿每个轴的索引向量获取矩阵值
Getting the matrix value given a vector of indices along each axis
我有一个 Matlab 矩阵 M,大小为:[70 5 3 2 10 9 5 3 21];
我有一个带有坐标的向量,我想读取该矩阵的坐标:[5, 1, 1, 2, 3, 4, 1, 2, 1];
我想要获得的 MWE 示例:
M = rand(70 5 3 2 10 9 5 3 21);
coordinates = [5, 1, 1, 2, 3, 4, 1, 2, 1];
% Output desired:
M(5, 1, 1, 2, 3, 4, 1, 2, 1)
%Current attempt:
M(coordinates)
显然M(coordinates) <> M(5, 1, 1, 2, 3, 4, 1, 2, 1)
。有办法吗?
有点笨拙,但你可以将数组转换为元胞数组,然后再转换为 comma-separated 列表:
M = rand(70, 5, 3, 2, 10, 9, 5, 3, 21);
coordinates = [5, 1, 1, 2, 3, 4, 1, 2, 1];
coords_cell = num2cell(coordinates);
result = M(coords_cell{:});
我有一个 Matlab 矩阵 M,大小为:[70 5 3 2 10 9 5 3 21]; 我有一个带有坐标的向量,我想读取该矩阵的坐标:[5, 1, 1, 2, 3, 4, 1, 2, 1];
我想要获得的 MWE 示例:
M = rand(70 5 3 2 10 9 5 3 21);
coordinates = [5, 1, 1, 2, 3, 4, 1, 2, 1];
% Output desired:
M(5, 1, 1, 2, 3, 4, 1, 2, 1)
%Current attempt:
M(coordinates)
显然M(coordinates) <> M(5, 1, 1, 2, 3, 4, 1, 2, 1)
。有办法吗?
有点笨拙,但你可以将数组转换为元胞数组,然后再转换为 comma-separated 列表:
M = rand(70, 5, 3, 2, 10, 9, 5, 3, 21);
coordinates = [5, 1, 1, 2, 3, 4, 1, 2, 1];
coords_cell = num2cell(coordinates);
result = M(coords_cell{:});