我有一個大小爲[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