2017-07-31 65 views
0

我有以下MATLAB代碼,其中分組陣列元件

out = cell(max(A), 1); 
for i = 1:numel(out) 
    out{i} = find(A == i); 
end 

A包含的所有條目中1:max(A),用不同的順序和可能的重複。代碼片段out{i}的末尾包含i出現在A中的索引。問題是 - 是否有可能將上述「矢量化」,而不是循環?我相信這可以通過accumarray完成,但我無法確切地看到。

+0

我會承擔的。['unique']第三輸出(https://www.mathworks.com/help/matlab/ref/unique.html )給你你想要的。 – excaza

+0

唯一的第三個輸出不會將等於條目的索引分組到單元陣列中。 – Alex

+0

爲什麼你需要將它們分組到一個單元陣列中? – excaza

回答

2

看來我想出了答案

out = accumarray(A, 1:max(A), [], @(x) {x})