减去每个数据值

时间:2011-11-18 02:56:25

标签: matlab matrix

我有一些数据,

A = [2 4 6 8 10]

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

如何编写可以从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] 等等...

1 个答案:

答案 0 :(得分: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

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

C = B-sum(A)

C =
   -29   -28   -27   -26   -25   -24   -23   -22   -21   -20