matlab对一组大矩阵和另一个已知的矩阵进行比较,相同的组成一个新矩阵,不同的组成另一个矩阵
时间: 2023-12-02 11:05:30 浏览: 76
可以使用 `ismember` 函数来完成这个任务。假设你要比较的一组大矩阵为 `A`,已知的矩阵为 `B`,则可以使用以下代码:
```matlab
% 生成示例数据
A = randi([0, 5], 5, 5);
B = [1 2 3; 4 5 0];
% 判断A中哪些元素在B中出现过
[tf, loc] = ismember(A, B);
% 根据结果生成新矩阵
same_matrix = zeros(size(A));
same_matrix(tf) = A(tf);
different_matrix = zeros(size(A));
different_matrix(~tf) = A(~tf);
```
`ismember` 函数返回两个参数,第一个参数 `tf` 是一个布尔数组,表示 A 中的每个元素是否在 B 中出现过。第二个参数 `loc` 是一个整数数组,表示 A 中每个元素在 B 中出现的位置。如果 A 中的某个元素在 B 中没有出现过,则 `loc` 中对应的位置为 0。在本例中,我们只使用了第一个返回值。
最后,根据 `tf` 数组中的结果,我们可以将 `A` 分别拆分成相同和不同两个矩阵:`same_matrix` 和 `different_matrix`。其中,`same_matrix` 中存储的是 A 中与 B 中相同的元素,而 `different_matrix` 中存储的是 A 中与 B 中不同的元素。
阅读全文