24小时热门版块排行榜    

查看: 1524  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

苏黎世1992

新虫 (初入文坛)

[交流] matlab中有没有现成的函数可以将两个矩阵中相同的元素用另一个值来替换。已有3人参与

如题,或者说,如果两个矩阵有交集,那么两个矩阵中对应的交集中的元素能不能用同一个值替代?
a=[1 2 3]
b=[1 2 3 4 5 6]
a和b的交集为[1 2 3],那么能不能交集中的元素全部变为9,a=[9 9 9 ],b=[9 9 9 4 5 6]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

余昭福

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
3楼: Originally posted by 余昭福 at 2015-12-28 23:01:33
其实这个挺好实现的。首先,你说的两个矩阵应该是相同的尺寸吧。如果是这样就好办多了。第一步,将两个矩阵中为零的元素记住坐标位置,并且赋值为一无限大的数比如10000尽量超出你矩阵中其他元素的取值。第二步,将 ...

简化一下,第一步和第五步可以不要,有点多余。

发自小木虫Android客户端
4楼2015-12-28 23:04:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

cjc5367

铁虫 (小有名气)

2楼2015-12-28 22:14:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

余昭福

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
其实这个挺好实现的。首先,你说的两个矩阵应该是相同的尺寸吧。如果是这样就好办多了。第一步,将两个矩阵中为零的元素记住坐标位置,并且赋值为一无限大的数比如10000尽量超出你矩阵中其他元素的取值。第二步,将两个矩阵做减法,得到新的矩阵。第三步,寻找新矩阵中元素为零的位置坐标。第四步,在旧矩阵中,将刚刚记录的位置坐标中的元素赋值成你想要得值。第五步,把旧矩阵中元素值为10000的元素赋值为零。收工!!!

发自小木虫Android客户端
3楼2015-12-28 23:01:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1314168apple

金虫 (知名作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
clear
a=[1 2 3 0 0 6];
b=[1 1 3 4 2 6 0];
A=intersect(a,b);%交集
len=length(A);%交集长度
for i=1:len
ind1=find(a==A(i));ind2=find(b==A(i));%找出下标
inde=find(ind1==ind2);%比较
a(ind1(inde))=9;b(ind2(inde))=9;%替换
end

a = 9     2     9     0     0     9
b = 9     1     9     4     2     9     0


最简单 :
clear
a=[1 2 3 0 0 6];
b=[1 1 3 4 2 6 0];
c=min(length(a),length(b));
ind=a(1:c)==b(1:c);
ind1=find(ind==1);
a(ind1)=9,b(ind1)=9,
a = 9     2     9     0     0     9
b = 9     1     9     4     2     9     0
为了最终理解你所不理解的,你必须经历一条愚昧无知的道路。为了占有你从未占有的东西,你必须经历被剥夺的道路。为了达到你现在所不在的名位,你必须经历那...
5楼2015-12-29 11:18:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见