How can I get subscript instead in indices from sort() ??

1 回表示 (過去 30 日間)
JAI PRAKASH
JAI PRAKASH 2018 年 8 月 7 日
コメント済み: Fangjun Jiang 2018 年 8 月 7 日
How can I get subscript instead in indices from
sort(mat(:));
Script:
%%Creation of 'mat'
mat = magic(100);
for i=1:100*100
mat(mat>(100*i-100) & mat<=100*i)=i;
end
[~,idx] = sort(mat(:));
%%I dont want to use 'for' loop. I.e.,
for i=1:length(idx) % I want to avoid for loop
[I(i),J(i)] = ind2sub(size(mat),idx(i));
end
I tried 'arrayfun' also but it is taking more time then for loop
[I2,J2] = arrayfun(@(x) ind2sub(size(mat),x),idx);
  1 件のコメント
Fangjun Jiang
Fangjun Jiang 2018 年 8 月 7 日
mat(:) turns mat() into a column vector. No point to get indices anyway.

サインインしてコメントする。

採用された回答

jonas
jonas 2018 年 8 月 7 日
編集済み: jonas 2018 年 8 月 7 日
ind2sub accepts multiple indices as input. It's right there in the first example of the doc.
IND = [3 4 5 6]
s = [3,3];
[I,J] = ind2sub(s,IND)
  1 件のコメント
JAI PRAKASH
JAI PRAKASH 2018 年 8 月 7 日
OMG what a silly question I asked.
Thanx for ur exact help

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

タグ

製品


リリース

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by