我有一些数据,
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]
等等...
答案 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