减去每个数据值

nsy*_*nsy 1 matlab matrix

我有一些数据,

A = [2 4 6 8 10]

B = [1 2 3 4 5 6 7 8 9 10]
Run Code Online (Sandbox Code Playgroud)

如何编写可以从B的所有值中减去A的每个值的程序.

为了更好地理解,

A = 2,减去所有B = [1 2 3 4 5 6 7 8 9 10],
然后取A = 4,减去所有B = [1 2 3 4 5 6 7 8 9 10]
等等......

Jon*_*nas 5

如果要创建一个新的数组C,在行中包含i结果B-A(i),则使用bsxfun:

A = [2 4 6 8 10];

B = [1 2 3 4 5 6 7 8 9 10];

C = bsxfun(@minus,B,A') %'# 
C =
    -1     0     1     2     3     4     5     6     7     8
    -3    -2    -1     0     1     2     3     4     5     6
    -5    -4    -3    -2    -1     0     1     2     3     4
    -7    -6    -5    -4    -3    -2    -1     0     1     2
    -9    -8    -7    -6    -5    -4    -3    -2    -1     0
Run Code Online (Sandbox Code Playgroud)

如果要创建C包含结果的新数组B-A(1)-A(2)-...,请编写

C = B-sum(A)

C =
   -29   -28   -27   -26   -25   -24   -23   -22   -21   -20
Run Code Online (Sandbox Code Playgroud)