如何把MATLAB中 两个数组的不同元素挑出来

有两个数组A=[1,5,7,19,35,51,61,73,85,95,111,127,139,141,145]B=[7,19,51,61,73,85,95,127,139... 有两个数组
A=[1,5,7,19,35,51,61,73,85,95,111,127,139,141,145]
B=[7,19,51,61,73,85,95,127,139]
怎么把A中有而B中没有的元素挑出来?
展开
 我来答
themanisjimmy
推荐于2016-11-11 · TA获得超过2756个赞
知道小有建树答主
回答量:843
采纳率:89%
帮助的人:230万
展开全部

用find函数。


假设第一个数组是x,第二个数组是y。有代码如下:


i=find(x~=y);   %该命令返回所有对应x元素不等于y元素的下标。

x(i),y(i)                      %显示所有不同元素


测试结果:


扩展:

如果x,y是同型号矩阵也可以。这是候传回的参数可以是1个(矩阵线性化以后的下标),或者2个(行下标、列下标),或者3个(前3者都有)。

调用格式:[I,J,V] = find(X)     I行下标,J列下标,V线性化下标

来自动物园骄傲的合欢花
2015-12-08 · 超过18用户采纳过TA的回答
知道答主
回答量:47
采纳率:100%
帮助的人:29.1万
展开全部
AB两个数组,可以用for循环,将A数组里的每一个值find()函数去B数组里找,找到了就返回1,没找到就说明这个数属于不同元素,就把这个元素保存下来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8231528
推荐于2018-02-27 · TA获得超过1151个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:215万
展开全部
%没有什么好的函数了,只能老实的写程序了,我给你写了一个
clear;
clc;
A=[1,5,7,19,35,51,61,73,85,95,111,127,139,141,145];
B=[7,19,51,61,73,85,95,127,139];
la=length(A);
lb=length(B);
n=1;
for i=1:la
isequal=0;
for j=1:lb
if A(i)==B(j)
isequal=1;
break;
end
end
if isequal==0
C(n)=A(i);
n=n+1;
end
end
C
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ga84644
2018-02-04
知道答主
回答量:14
采纳率:0%
帮助的人:4445
展开全部
使用setdiff函数
例子: >>x=[1:10]; y=[6:8]; c = setdiff(x,y)
输出结果:
c =
1 2 3 4 5 9 10
(@wisdomay正解)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式