MATLAB中一个数组的元素与另一个数组的所有元素的差异

Difference of elements of an array with all element of another array in MATLAB

假设我有两个不同大小的数组。说 A=[10;12;13;17;18];B=[20;22;23;17;26;30;32];。 C 的输出如下:

   [10, 8,  7,  3,  2;
    12, 10, 9,  5,  4;
    13, 11, 10, 6,  5;
    7,  5,  4,  0,  -1;
    16, 14, 13, 9,  8;
    20, 18, 17, 13, 12;
    22, 20, 19, 15, 14].

C的每一列都是B的所有元素与A的某个特定元素的差值,例如C的第一列是B的所有元素与A的第一个元素的差值,即 10。如果 A 的维度为 (m×1),B 的维度为 (n×1),则 C 的维度为 (n×m)。

你可以使用这个代码块。

clear;
clc;

A=[10;12;13;17;18];
B=[20;22;23;17;26;30;32];

m = length(A);
n = length(B);

C = zeros(n,m);

for i=1:m
    for j=1:n
        C(j,i) = B(j) - A(i);
    end
end

disp(C)