从矩阵列中减去相应的矢量值

Pau*_*nta 3 matlab matrix octave

我有一个矩阵'x'和一个行向量'v'; 行向量中的元素数量与矩阵中的列数相同.是否有任何预定义的功能来执行以下操作?

for c = 1 : columns(x)
    for r = 1 : rows(x)
        x(r, c) -= v(c);
    end
end
Run Code Online (Sandbox Code Playgroud)

tmp*_*rce 8

bsxfun(@minus,x,v)
Run Code Online (Sandbox Code Playgroud)

这是一个八度演示:

octave>  x = [1 2 3;2 3 4]
x =

   1   2   3
   2   3   4

octave> v = [2 0 1]
v =

   2   0   1

octave> 
octave> z=bsxfun(@minus,x,v)
z =

  -1   2   2
   0   3   3
Run Code Online (Sandbox Code Playgroud)