我想a
在一个循环中切片Julia中的一个数组,以便将它分成几个n
样本块.该阵列的长度nsamples
是不的倍数n
,所以最后步幅将更短.
我的尝试是使用三元运算符来检查步幅的大小是否大于数组的长度:
for i in 0:n:nsamples-1 end_ = i+n < nsamples ? i+n : end window = a[i+1:end_] end
这样,如果我超过了数组的大小,a[i+1:end_]
就会解决a[i+1:end]
.
但是,在第2行中使用关键字"end"是不可接受的(它也是julia中"end of control statement"的关键字.
在Python中,我可以分配None
到end_
,这将解决到a[i+1:None]
,这将是数组的结尾.
我怎么能绕过这个?
该end
关键字仅给予这种特殊待遇的索引表达式,它的计算结果为维度的最后一个索引被索引的内部.你可以把它放在里面,例如
for i in 0:n:nsamples-1 window = a[i+1:min(i+n, end)] end
或者您也可以使用length(a)
(或者nsamples
,我猜他们是一样的吗?),而不是end
要清楚哪些end
你指的是.