フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

quick syntax question for saving run time

1 回表示 (過去 30 日間)
jenka
jenka 2012 年 9 月 18 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I have the following:
m1 = rand(5,5)
m2 = rand(5,5)
m3 = rand(5,5)
m4 = rand(5,5)
m3D = cat(3, m1, m2, m3, m4);
% Find the min and a map of what matrix it occurred in.
[min2DImage matrixWhereItOccurs] = min(m3D, [], 3)
Now I would like to have accumlation array where I update that array by adding one to the 3rd dimension with index referenced from matrixWhereItOccurs
sz = sz(m3D);
accum_arr = zeros(sz(1),sz(2),sz(3)
Let's say matrixWhereItOccurs(2,3)=4, then accumm_arr(2,3,4)=accum_arr(2,3,4)+1; I want to do this for ALL elements now without going into loop as in my work the arrays are huge.Could you please help? Thanks
  2 件のコメント
per isakson
per isakson 2012 年 9 月 18 日
Please format to save my time :)
jenka
jenka 2012 年 9 月 18 日
sorry.here it is.

回答 (1 件)

Honglei Chen
Honglei Chen 2012 年 9 月 18 日
編集済み: Honglei Chen 2012 年 9 月 18 日
ind = sub2ind(sz,repmat((1:sz(1))',1,sz(2)),repmat(1:sz(2),sz(1),1),...
matrixWhereItOccurs);
accum_arr(ind(:)) = accum_arr(ind(:))+1;

この質問は閉じられています。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by