gpt4 book ai didi

wolfram-mathematica - mathematica 中的列表索引

转载 作者:行者123 更新时间:2023-12-04 17:04:43 39 4
gpt4 key购买 nike

S是具有唯一元素的向量,并且 s它的一个子集,也有独特的元素;例如,S={1,2,3,4,5,6}s={1,3,4,6} .现在给出另一个向量 c={7,8,9,7} ,如何创建矢量 C=[7,0,8,9,0,7] ,即如果 S[[i]]s 中的一个元素,然后 C[[i]]等于 c 中的元素与 S[[i]] 具有相同的索引在 s ,否则为零。

我现在拥有的看起来像

C=Array[0&,Length[S]];
j=1;
For[i=1,i<=Length[S],i++,If[MemberQ[s,S[[i]]],C[[i]]=c[[j]];j=j+1;]];

这有效,但来自 MATLAB 背景,我讨厌 for循环和上述操作是matlab中的一个简单的索引操作。我相信有一种更聪明的方法可以实现这一点,即 la mathematica 风格。有没有人有建议?

最佳答案

您正在用 c 中的元素或 0 替换 S 的元素,因此:

ss = {1, 2, 3, 4, 5, 6}
s = {1, 3, 4, 6}
c = {7, 8, 9, 7}
r = Append[MapThread[Rule, {s, c}], Rule[_, 0]]
answer = Map[Replace[#, r] &, ss]

关于wolfram-mathematica - mathematica 中的列表索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5479601/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com