作者clifflu ( 杀气模式)
看板MATLAB
标题Re: [问题] 这程式能不用回圈吗?
时间Mon Oct 30 13:11:12 2006
※ 引述《q5212 (偷吃是王道)》之铭言:
: A=[1 11 3 4 5 6 7 8 9 10]
: B=[11 10]
: for i=1:2
: index=find(A(1,:)==B(1,i))
: A(1,index)=0
: end
: 就是要将A矩阵的数值=B矩阵的数值
: 就把等於的数值归0
先将所求改变为 "取出不重覆的部份",则能以差集函数 (setdiff) 完成
q = setdiff(A,B) ;
q = [1 3 4 5 6 7 8 9]
接着再利用 ismember 函数,确定 A 中哪些位置的元素,
是存於该差集 (q) 中
r = ismember(A, q) ;
r = [1 0 1 1 1 1 1 1 1 0] ;
虽然 r 是 logical array,不过你还是可以将它与 numerical array 运算
因此 r .* A 便能满足所求
--
鬼压床怎麽办
骑上去啊
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.217.16
1F:推 NCKZ:推荐这篇文章 10/30 14:00
2F:推 clifflu:请....请不要推倒我 女性限定 谢谢 XD 10/30 14:30
3F:推 Gwaewluin:哦哦哦哦!这个好! 10/30 16:45