EDA365电子论坛网

标题: 数组中元素替换的问题 [打印本页]

作者: xiannvjiejie    时间: 2020-9-14 14:36
标题: 数组中元素替换的问题
请教如题的问题,为了方便描述,见图
$ Y2 S) x/ Z1 f' X+ i
8 n; h% _! T! @- T有一个由0和1随机位置组成的A矩阵,现在想将A矩阵中的1和0依次替换成B矩阵和C矩阵中的元素,替换方式为图示箭头所示:B矩阵中的元素依次替换A矩阵中每个1的位置,同理,C矩阵中的元素依次替换A矩阵中每个0的位置,得到新D矩阵。" B: I' c7 `+ j! i( [6 [" N5 l
4 z" d) A: f* f; @& S1 {4 _
不知道是否有什么函数可以快速实现,我用for语句没有写出来。
2 v/ |. X, |& p2 V
: r7 K! z4 m* }( K" @9 R& L' F非常感谢。
4 B/ s: d9 g/ N2 o: J3 ]- M 4 m' Y4 I6 {" \5 C- l! v4 _" F

作者: modengxian111    时间: 2020-9-14 15:32
- J5 i+ ?7 z: I9 V5 A" w2 r* C/ A
使用逻辑索引赋值就可以达到这个要求。示例代码如下:
7 k, ~% H. j# E* x4 d1 p. N>> A=[0,1,0,0,1,1,0,0,1]$ F9 p7 z, w5 Q; p7 W: o
A =1 }) i2 o& l9 _3 s
     0     1     0     0     1     1     0     0     1
! Z4 i+ S2 g- R' A! U2 s>> B=[2,1,4,3], c/ ?6 T3 p+ K2 c- A
B =
4 V6 v: b* ~! _  G( f3 g     2     1     4     3
8 O; x1 F2 ~$ T- T( D  E0 A>> C=[7,5,9,6,8]
4 H- {9 T: E5 p: H% EC =) {6 i; E  x$ E. Q* z
     7     5     9     6     8
( M8 X2 @/ b: m; b! w% f& }: \4 x>> A(A==1)=B& k! S. }0 l1 p2 Q
A =
6 O7 P3 r  C1 m' I% a( M" L8 z0 g     0     2     0     0     1     4     0     0     3
9 C, Q- D) u- @" l. y- B9 N>> A(A==0)=C
' V3 q; n! R& Q4 SA =
$ |! S9 P8 h. O     7     2     5     9     1     4     6     8     3




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2