Mathematica 如何按子表中每个元素出现的位置输出对应的表?如何按子表中每个元素出现的位置输出对应的表?例如:输入:s1={{a,b,c,d,e},{b,e,d,f},{g,d,b,g,a}};s2={{1,2,3},{4,2},{{3}}};输出:s3={{{{{a,b,c},{d,b},{{c}

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 02:47:04

Mathematica 如何按子表中每个元素出现的位置输出对应的表?如何按子表中每个元素出现的位置输出对应的表?例如:输入:s1={{a,b,c,d,e},{b,e,d,f},{g,d,b,g,a}};s2={{1,2,3},{4,2},{{3}}};输出:s3={{{{{a,b,c},{d,b},{{c}
Mathematica 如何按子表中每个元素出现的位置输出对应的表?
如何按子表中每个元素出现的位置输出对应的表?
例如:
输入:
s1={{a,b,c,d,e},{b,e,d,f},{g,d,b,g,a}};
s2={{1,2,3},{4,2},{{3}}};
输出:
s3={{{{{a,b,c},{d,b},{{c}}}},{{{b,e,d},{f,e}},{{d}}}},{{{g,d,b},{g,d}},{{b}}}}}
说明:(1) s2是任意形式任意层的数值列表;
(2) s2中每个数表示s1每个子表中某个元素的序列位置,即s2中的每个数值ki表示s1中每个子表的第ki个元素.例如s1中的1表示s1中第一个子表中的第1个元素a,也表示第二个子表中的第1个元素b,也表示第三个子表中的第1个元素g,其余类推;
(3) s3是按s2的列表式,对s1中每个子表输出一个对应表来.
(4) 其中s2中的最大值不大于s1中最小子表元素的个数
上面书写有一处笔误,s3应该是:
s3={{{{a,b,c},{d,b},{{c}}}},{{{b,e,d},{f,e}},{{d}}}},{{{g,d,b},{g,d}},{{b}}}}}

Mathematica 如何按子表中每个元素出现的位置输出对应的表?如何按子表中每个元素出现的位置输出对应的表?例如:输入:s1={{a,b,c,d,e},{b,e,d,f},{g,d,b,g,a}};s2={{1,2,3},{4,2},{{3}}};输出:s3={{{{{a,b,c},{d,b},{{c}
s3=Table[s1[[x,s2[[y]]]],{x,1,Length@s1},{y,1,Length@s2}]