![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
Mathematica 如何生成这类列表?
如何生成这类列表?即分别取出n个元素表中后面的n-1个元素、后面的n-2个元素...后面的n个元素,组成一个新的2层表。主要不明白Take函数对子表的处理方法。例如:输入...
如何生成这类列表?
即分别取出n个元素表中后面的n-1个元素、后面的n-2个元素...后面的n个元素,组成一个新的2层表。主要不明白Take函数对子表的处理方法。
例如:
输入:
s1={1,2,3,4,5};
输出:
s2={{2,3,4,5},{3,4,5},{4,5},{5}}
谢谢! 展开
即分别取出n个元素表中后面的n-1个元素、后面的n-2个元素...后面的n个元素,组成一个新的2层表。主要不明白Take函数对子表的处理方法。
例如:
输入:
s1={1,2,3,4,5};
输出:
s2={{2,3,4,5},{3,4,5},{4,5},{5}}
谢谢! 展开
1个回答
展开全部
s2=Table[#[[-i ;;]], {i, Length@# - 1, 1, -1}] &@s1
这是最容易想到的,不过恐怕也是速度最慢的。稍好一些的可以写:
NestList[Rest, Rest@#, Length@# - 2] &@s1
最快的办法是什么我也不知道,我去贴吧帮你问问吧。
这是最容易想到的,不过恐怕也是速度最慢的。稍好一些的可以写:
NestList[Rest, Rest@#, Length@# - 2] &@s1
最快的办法是什么我也不知道,我去贴吧帮你问问吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询