的指令调用之前,
我必须在不支持bsxfun
的旧版本上运行Matlab代码,并且需要编写
matx = bsxfun(@rdivide, matx, reshape(f, 1, 1, length(f)));
我已经试过了
matx=matx./ones(size(reshape(f, 1, 1, length(f)),1));
但是我得到了错误的结果
matx
尺寸为246x301x81在使用bsxfun
f
的大小是1x81。由于matx
是一个3D数组,f
是一个长度等于matx
的dim-3
中的元素数的行向量,您可以使用repmat
执行bsxfun
等效的扩展/复制,然后执行按元素除法,如下-
% Get size of matx
[m1,n1,r1] = size(matx);
%// Replicate f to the size of matx and perform elementwise division
matx = matx./repmat(permute(f,[1 3 2]),[m1 n1 1])