matlab 中有没有寻找两个矩阵中共同元素的命令?

想找到两个矩阵中的共同元素... 想找到两个矩阵中的共同元素 展开
 我来答
杨好巨蟹座
推荐于2016-09-06 · TA获得超过5万个赞
知道大有可为答主
回答量:6197
采纳率:80%
帮助的人:1628万
展开全部
>> A=randn(3,4)
A =
-0.5883 0.1139 -0.0956 -1.3362
2.1832 1.0668 -0.8323 0.7143
-0.1364 0.0593 0.2944 1.6236
以逻辑数组表达满足条件的元素:
>>L=(A>0)
L =
0 1 0 0
1 1 0 1
0 1 1 1
%寻找符合条件元素位置(返回为一列,并以单下标形式表示位置,故转置为一行)
>>s=(find(L))'或者
>> s=(find(A>0))'
s =
2 4 5 6 9 11 12
可以对满足条件的元素集体赋值
>> A(s)=0
A =
-0.5883 0 -0.0956 -1.3362
0 0 -0.8323 0
-0.1364 0 0 0
如果要以双下标形式返回符合条件的元素位置:
>> [ii,jj]=find(A==0);
>> disp(ii'),disp(jj')
2 1 2 3 3 2 3
1 2 2 2 3 4 4
最后,与arrayfun综合运用的一个例子,问题见于simwe forum,想了下可以采用下面的两种方式来完成:

请问如何查找矩阵中相同向量的位置?
比如矩阵A=【1,2,3,1;
2,3,4,2;
3,3,8,3】
向量为b =【1;2;3】
如何能不用循环找出b在A矩阵列中的位置,loc=【1 4】呢?
方法一:
A=[1,2,3,1;2,3,4,2;3,3,8,3];
B=[1;2;3];
C=find((ismember(A',B','rows'))');

方法二:
A=[1,2,3,1;2,3,4,2;3,3,8,3]
B=[1;2;3];
[M,N]=size(A);
N=1:N;
P=find(arrayfun(@(n) isequal(A(:,n),B),N));
计算天下
2009-07-28 · TA获得超过1784个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:452万
展开全部
matlab可以寻找两个矩阵相同位置的相同元素。用a(find(a==b))命令。如
>> a=[1 2 3;4 5 6;7 8 9]

a =

1 2 3
4 5 6
7 8 9

>> b=[1 3 2;5 4 6;8 9 7]

b =

1 3 2
5 4 6
8 9 7

>> a(find(a==b))

ans =

1
6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greatdju
推荐于2017-11-21 · TA获得超过2.2万个赞
知道大有可为答主
回答量:2486
采纳率:50%
帮助的人:4453万
展开全部
对应位置相同用A(A==B)
位置不考虑用intersect(A(:),B(:))
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feyman2009
2009-07-28 · 超过17用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:0
展开全部
应该没有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式