Nis*_*ant 1 matlab matrix vectorization
输出是一个3d矩阵,size(output) == [height width N]输入是一个2d矩阵size(input) == [height width].我需要在一行中实现以下代码.
for k = 1:size(output,3)
f = output(:,:,k);
i_zero = (f==0);
f(is_zero) = input(is_zero);
output(:,:,k) = f;
end
Run Code Online (Sandbox Code Playgroud)
bsxfun 方法 -
output = bsxfun(@times,output==0,input) + output
Run Code Online (Sandbox Code Playgroud)
替代方法 -
output = (output==0).*input(:,:,ones(1,N))+ output
Run Code Online (Sandbox Code Playgroud)