matlab : R2018a 64bit
OS : Windows 10 x64
typesetting : Markdown
blog : my.oschina.net/zhichengjiu
交
code
clear
clc
a=[1 2 3 4 5 6]
b=[1 2 3 4 5 8 7 6]
[c1,la,lb]=intersect(a,b);
% la,lb以列向量的方式呈现
e=la' % 改成行向量好看
f=lb'
% e =
% 1 2 3 4 5 6 %a中的第6个元素和b中的第8个元素相同的,
% f =
% 1 2 3 4 5 8
c1 % 取交集的结果
aaa=[1 2 3;4 5 6;7 8 9]
bbb=[1 2 3;7 8 9;4 5 0]
[ccc,i,l]=intersect(aaa,bbb,'rows')
% 一行一行的比较,要是a中某一行与b中某一行相同,那么结果就包括这一行。
% 如果a中某一行有一个元素是b中某一行没有的,那么不包括这行.
result
a =
1 2 3 4 5 6
b =
1 2 3 4 5 8 7 6
e =
1 2 3 4 5 6
f =
1 2 3 4 5 8
c1 =
1 2 3 4 5 6
aaa =
1 2 3
4 5 6
7 8 9
bbb =
1 2 3
7 8 9
4 5 0
ccc =
1 2 3
7 8 9
i =
1
3
l =
1
2
>>
差
code
clear
clc
a=[1 2 3 4]
b=[4 5]
c=setdiff(a,b) % x在a中,但是x不在b中
e=[1 2 3;4 5 6;7 8 9]
f=[4 5 6;0 2 3;1 3 2]
c=setdiff(e,f,'rows')
% 矩阵e中有这行,但是矩阵b中没有这行.这行中元素的前后顺序也起作用.
result
a =
1 2 3 4
b =
4 5
c =
1 2 3
e =
1 2 3
4 5 6
7 8 9
f =
4 5 6
0 2 3
1 3 2
c =
1 2 3
7 8 9
>>
并
code
clear
clc
a=[1 2 3 4 5 6]
b=[1 2 3 4 5 8 7 6]
u=union(a,b)
aa=[1 2;3 4;5 6]
bb=[4 5]
uu=union(aa,bb,'rows') %一行为单位,就跟合并两个矩阵,然后消除重复行似得
result
a =
1 2 3 4 5 6
b =
1 2 3 4 5 8 7 6
u =
1 2 3 4 5 6 7 8
aa =
1 2
3 4
5 6
bb =
4 5
uu =
1 2
3 4
4 5
5 6
>>
补
code
clear
clc
I=[1 2 3 4 5 6 7 8 9]
a=[1 2 3]
c=size(I) %c(2)表示I的列数,也就是元素个数
j=1;
for i=1:1:c(2)
d=ismember(I(i),a); %判断I(i)在a中有没有
if(d==0)
e(j)=I(i); %如果I(i)在a中没有,那么将I的值给e
j=j+1;
end
end
e % 所求补集
% 果然人的智慧是主要的。。。遇到未知的问题,没有函数可以参考,自己强大,以不变应万变
result
I =
1 2 3 4 5 6 7 8 9
a =
1 2 3
c =
1 9
e =
4 5 6 7 8 9
>>
resource
[文档] ww2.mathworks.cn/help/matlab
[文档] ww2.mathworks.cn/help/simulink
[平台] www.oschina.net
[平台] gitee.com
感谢帮助 志成就 的人们。
matlab优秀,值得学习。基础知识 + 专业知识 + matlab = ?
Simulink,用于仿真和基于模型的设计,值得学习。
该博文仅可用于测试与参考。