stack
次元 NxMxRの配列があるとします。一時変数を使用せずに、特定のディメンションで論理インデックスを使用してその値を更新したいと考えています。
一時変数を使用した例:
for k=1:R
temp=stack(:,:,k);
temp(temp<max(max(temp))/2)=NaN;
cropped(:,:,k)=temp;
end
条件が配列全体で同じであれば自明ですが、R
次元に沿って変化することに注意してください。bsxfun
次のような構文でしきい値を減算したい場合に適しています。
cropped = bsxfun(@minus, stack, max(max(stack, [], 3))/2);
bsxfun
一時変数の使い方がぎこちなく、ループが行うことを行うための関数を定義する適切な方法を見つけることができません。
誰か提案がありますか?