我有一个大小为[4 1 10 128]的数据矩阵,我有一个大小为[1 1 10 128]的索引矩阵。Matlab n-d索引
在索引矩阵中的每个元素是在范围内的数为1〜4,其指示在数据矩阵的第一维中选择哪一个元素。现在
我想创建所选元素的矩阵,像d = data(idx)
。
这不起作用,我认为是因为matlab期望线性索引?
任何其他方式做到没有循环? 谢谢。
循环解决方案:
for i=1:size(idx,3)
for j=1:size(idx,4)
ind = idx(1,1,i,j);
d(1, 1, i, j) = data(ind, 1, i, j);
end
end
在'data'大小数和'idx'矩阵真的它们的尺寸?如果是这样,他们为什么不同,1s的含义是什么? – McMa
只是一般性评论:最好[不要在Matlab中使用'i'和'j'作为变量名](http://stackoverflow.com/questions/14790740/using-i-and-j-as-variables -in-MATLAB)。 – Shai