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中 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) 这个是啥意思