嗨,我正在寻找一种从接近结束到接近开始的一个阵列片段的方法。我知道我可以分两部分来做,然后添加它们,但它似乎是一个常见的操作,我认为matlab可能已经内置了但我在搜索中找不到任何信息。 澄清我希望能够说:
y = 1:10
y(-3:3) or y(8:3)
returns:
8 9 10 1 2 3
提前致谢。
答案 0 :(得分:3)
实际上 是一种方法(不将其分成索引的负面和正面部分的串联):在所需范围内使用模运算符:
>> y = 1:10;
>> y(mod([-3:3]-1,numel(y))+1)
ans =
7 8 9 10 1 2 3
这个结果由7个数字组成(与你想要的[8 9 10 1 2 3]相反),这是合乎逻辑的,因为-3:3实际上跨越了7个数字。
数字0对应于此方法的y(结束),-1对应于y(结束-1)等。
答案 1 :(得分:1)
你可以试试这个:
y = 1:10;
n = 3;
y([end-n+1:end 1:n]);
返回
ans =
8 9 10 1 2 3