>想象一下,我有两个不同大小的矩阵(假设 6x2 和 5x2(,如下所示:
A = [47 10;
29 10;
23 10;
34 10;
12 10;
64 10];
B = [23 20;
12 20;
54 20
47 20;
31 20];
我需要将 A(:,1( 与 B(:,1( 进行比较,并删除矩阵 A 中第一列元素与矩阵 B 的第一列元素不同的行(所以我的重点只放在矩阵的第一列上(。所以我最终应该得到这样的东西:
A = [47 10;
12 10;
23 10];
因为"47"、"12"和"23"是 A 中唯一也存在于 B 中的第一列元素!我已经写了这个,但我收到错误"矩阵维度必须同意"。
TF = A(:,1) ~= B(:,1); %define indexes in A that A(:,1) is not equal to B(:,1)
A(TF,:) = [];
任何想法如何解决这个问题?
您可以使用 ismember:
result = A(ismember(A(:,1), B(:,1)), :);
替换此行
TF = A(:,1) ~= B(:,1);
用这条线
[~,TF] = setdiff(A(:,1),B(:,1));
产生所需的结果。