Wolfram Mathematica 关于数表分拆问题求教?

问题描述:

Wolfram Mathematica 关于数表分拆问题求教?
一、Wolfram Mathematica 如何把数表按绝对值大小分组?
例如:把绝对值最小的3个数分为一组,把剩下的分为一组,要求保留每个数原来的位置不变,空位用0填充:
输入:{3,-5,7,-9,-4,8}
输出:
{3,-5,0,0,4,0}
{0,0,7,-9,0,8}
二、Wolfram Mathematica 如何把数组中每个元素原地重复n次?
例如:把{a,b,c}每个元素原地重复2次就得到:{a,a,b,b,c,c}
三、Wolfram Mathematica 如何把2个表交叉合并为一个表?
例如:把{1,3,5,7,9,11}与{2,4,6,8}交叉合并就得到
{1,2,3,4,5,6,7,8,9,11}

我这会儿能想到的是:
第一个:
list = {3, -5, 7, -9, -4, 8};
min3 = Replace[list, Except[Alternatives @@ Part[list, Ordering[Abs@list, 3]]] -> 0, 1]
rest = list - min3
第二个:
Replace[{a, b, c}, a_ -> Sequence[a, a], 1]
第三个:
lst1 = {1, 3, 5, 7, 9, 11};
lst2 = {2, 4, 6, 8};
mid = PadRight[lst2, Length@lst1];
DeleteCases[Riffle[lst1, mid], 0]
用的指令比较多,注意看帮助.