查看: 106|回复: 2|关注: 0

[已答复] 数组中元素替换的问题

[复制链接]

新手

13 麦片

财富积分


050


6

主题

23

帖子

0

最佳答案
发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 black_angel 于 2020-9-13 23:27 编辑

请教如题的问题,为了方便描述,见图

                               
登录/注册后可看大图

有一个由0和1随机位置组成的A矩阵,现在想将A矩阵中的1和0依次替换成B矩阵和C矩阵中的元素,替换方式为图示箭头所示:B矩阵中的元素依次替换A矩阵中每个1的位置,同理,C矩阵中的元素依次替换A矩阵中每个0的位置,得到新D矩阵。

不知道是否有什么函数可以快速实现,我用for语句没有写出来。

非常感谢。




附图

附图
回复主题 已获打赏: 0 积分

举报

入门

152 麦片

财富积分


50500


0

主题

53

帖子

16

最佳答案
  • 关注者: 2
发表于 5 天前 | 显示全部楼层
使用逻辑索引赋值就可以达到这个要求。示例代码如下:
  1. >> A=[0,1,0,0,1,1,0,0,1]
  2. A =
  3.      0     1     0     0     1     1     0     0     1
  4. >> B=[2,1,4,3]
  5. B =
  6.      2     1     4     3
  7. >> C=[7,5,9,6,8]
  8. C =
  9.      7     5     9     6     8
  10. >> A(A==1)=B
  11. A =
  12.      0     2     0     0     1     4     0     0     3
  13. >> A(A==0)=C
  14. A =
  15.      7     2     5     9     1     4     6     8     3
复制代码


回复此楼 已获打赏: 0 积分

举报

新手

13 麦片

财富积分


050


6

主题

23

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
zdcgy 发表于 2020-9-14 04:25
使用逻辑索引赋值就可以达到这个要求。示例代码如下:

非常感谢,果然这样是最快的
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表