Matlab中,若A=[1,2;3,4;5,6;7,8],B=[3,4;7,8],如何删除A中与B中元素相同的行,得到C=[1,2;4,5]?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab中,若A=[1,2;3,4;5,6;7,8],B=[3,4;7,8],如何删除A中与B中元素相同的行,得到C=[1,2;4,5]?相关的知识,希望对你有一定的参考价值。

写急了,应该是C=[1,2;5,6]

您好,可以使用setdiff函数
C=setdiff(A, B, 'rows')
意思是对于行来讲,返回属于矩阵A而不属于矩阵B的行向量所组成的矩阵
参考技术A 赞同楼上的,不过还可以采用setxor()函数;
c=setxor(A,B,'rows'):返回矩阵A,B交集的非,A、B有相同的列数。
参考技术B C=setdiff(A,B,'rows');

Matlab中的冒号

2020-05-02 19:53:02

在进行数组操作时,冒号若使用得当,能得到简化操作的作用,大致总结冒号在矩阵操作中的主要作用和使用方法:

 

语句 作用
A(:,j) A的第j列
A(i,:) A的第i行
A(:,:) A本身
A(:) A的单列
A(i:j) A单列中第i~第j个元素
A(:,i:j) A的第i~j列
A(i:j,:) A的第i~行
   
A = (10:-2:0) 定义向量A从10开始,到0结束,步长为-2

 

matlab例子:

 1 >> A = [1,2,3,4;5,6,7,8;9,10,11,12]
 2 
 3 A =
 4 
 5      1     2     3     4
 6      5     6     7     8
 7      9    10    11    12
 8 
 9 >> A(:,2)  % A的第二列
10 
11 ans =
12 
13      2
14      6
15     10
16 
17 >> A(3,:)  % A的第三行
18 
19 ans =
20 
21      9    10    11    12
22 
23 >> A(:)  %等于A的单列(化为一维的向量)
24 
25 ans =
26 
27      1
28      5
29      9
30      2
31      6
32     10
33      3
34      7
35     11
36      4
37      8
38     12
39 
40 >> A(2:4)   % A单列的第2~第4个元素
41 
42 ans =
43 
44      5     9     2
45 
46 >> A(:,:)   % 等于A
47 
48 ans =
49 
50      1     2     3     4
51      5     6     7     8
52      9    10    11    12
53 
54 >> A(:,2:4)  % A的第2~4列
55 
56 ans =
57 
58      2     3     4
59      6     7     8
60     10    11    12

小结:

冒号在矩阵操作中主要有:

1.定义矩阵或取矩阵的一部分时,指定步长;

2.单独存在时,表示默认选择所有行/列(若在逗号左边,表示选择所有行;若在逗号右边,默认选择所有列)。






以上是关于Matlab中,若A=[1,2;3,4;5,6;7,8],B=[3,4;7,8],如何删除A中与B中元素相同的行,得到C=[1,2;4,5]?的主要内容,如果未能解决你的问题,请参考以下文章

matlab找出某个元素的位置序号

在matlab中 a=[1,2,3;4,5,6;7,8,9] 分别计算a的数组平方和矩阵平方

matlab中 a=[1,2,3;4,5,6;7,8,9] b=a(3:-1:1,1:3) 这个是啥意思

JAVA同集合中怎样比较相邻两个元素? 例如:集合a有1,5,7,9 2,4,5,9 ,2,3,5

怎样用matlab求矩阵的乘积

Matlab中整数规划问题