3

重複の可能性:
MATLAB:差異のマトリックス

この質問の言い方はわかりませんが、最善を尽くします。

私は2つのベクトルを持っています、AそしてB

Aのすべての値を、のすべての個々の値で減算したいと思いますB

たとえば、のすべての値はA、の最初の値で減算されますB。次に、のすべての値AがBの2番目の値で減算され、以下同様に続きます。

結果の行列は次のようにlength(A) x length(B)なります。

Ans = [A - B(1); A - B(2); A - B(3); ....... ]

ループなしでこれを行う方法はありますか?

4

2 に答える 2

3

@Memmingや@Jonasのような行は次のように述べています。

Result = bsxfun(@minus, a, b');
于 2012-11-17T15:51:05.980 に答える
2
a=[2 3 4];      %first take two vector a and b of any size
b=[5 6 5 7];
m=size(a);      % Then Calculate the size of the vectors
n=size(b);  
r1=a'*ones(n);  % replicate the vector a and b one can use **repmat** here for replication  
r2=ones(m)'*b;  % like **repmat(a',n)  &  repmat(b,m(end),1)**
Result=r1-r2

Result =

    -3    -4    -3    -5
    -2    -3    -2    -4
    -1    -2    -1    -3
于 2012-11-17T15:10:26.937 に答える