公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

+1 投票
537 浏览

假设我有两个矩阵a1,a2

a1 = RandomReal[10, {3, 3}];
MatrixForm[a1]
a2 = RandomInteger[1, {3, 3}];
a2 // MatrixForm
我想在提取a1中的值,只有相同位置上a2的值为1,才提取对应位置上a1的值,请问该怎么做?
用户: 落雨流觞 (1.1k 分)

2 个回答

+1 投票

先把a1中不为1的置0,再对应数乘吧。得到的矩阵就是a1经a2过滤后的矩阵了。

a3 = Map[Replace[_?(# != 1 &) -> 0], a2, Infinity]
a1*a3;
% // MatrixForm

只知道思路,代码不太会,大致是这样。

用户: osu875386 (31 分)
——请问如何更改自己的用户名、头像等信息呢?我是QQ登录的。
+1 投票

你是不是找:Pick

a1 = RandomReal[10, {3, 3}];
a2 = RandomInteger[1, {3, 3}];
Pick[a1, a2, 1]

 

用户: xzczd (2.2k 分)
...