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)
假设我有两个不同大小的数组。说 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)