gpt4 book ai didi

wolfram-mathematica - 如何从mathematica中一对列表的元素生成产品列表

转载 作者:行者123 更新时间:2023-12-01 07:05:34 28 4
gpt4 key购买 nike

是否有一个预先准备好的操作需要两个列表,比如

a = { 1, 2, 3 }
b = { 2, 4, 8 }

并在不使用 for 循环的情况下生成一个新列表,其中每对列表中的相应元素已相乘
{ a[1] b[1], a[2] b[2], a[3] b[3] }

我在想可能存在像 Inner[Times, a, b, Plus] 这样的东西,但返回一个列表而不是一个总和。

最佳答案

a = {1, 2, 3}
b = {2, 4, 8}

Thread[Times[a, b]]

或者,因为 Times[]在列表上逐元素地线程化,简单地:
a b

请注意,两种解决方案的效率并不相同:
i = RandomInteger[ 10, {5 10^7} ];
{First[ Timing [i i]], First[ Timing[ Thread[ Times [i,i]]]]}

(*
-> {0.422, 1.235}
*)

编辑
Times[]的行为是由于 Listable属性。看这个:
SetAttributes[f,Listable];
f[{1,2,3},{3,4,5}]
(*
-> {f[1,3],f[2,4],f[3,5]}
*)

关于wolfram-mathematica - 如何从mathematica中一对列表的元素生成产品列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7662930/

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