假设我有一个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
来执行循环的功能。
有人有建议吗?