私が以前に書いた答えで:https://stackoverflow.com/a/41966459/2749865標準以外のインデックスを持つ配列を処理するのに十分なコードを作成しようとしました。そのために1:size(...)
の代わりに構造indices
を使用:あなたが見ることができるように、しかし、私は最後の要素をドロップしたいときindices
を使用する方法を見つけ出すことができませんでしたJulia非標準配列でインデックスを削除する
[C[i+1, j]/C[i, j]-1 for i in 1:size(C, 1)-1, j in indices(C, 2)]
。
私はdrop(indices(C, 1), n)
を書き込むことによって最初n
の要素をスキップすることができますが、最後 n個のインデックスをドロップする方法を見つけることができません。
どうすればこの問題を解決できますか?
編集:これをオフにするだけです。私の具体的な例では、私は書いたことがあります
[C[i, j]/C[i-1, j]-1 for i in drop(indices(C, 1), 1), j in indices(C, 2)]
しかし、私はまだ一般的な解決策がある場合は聴聞会に興味があります。
これは、普通の '1:size(...) ':)これは、非標準的な配列をサポートすることが価値があるので、(http://docs.julialang.org/en/stable/devdocs/offset-arrays/)、このパターンが十分に一般的だと思いますか?それ自身のイディオム、例えば'chop'(@DanGetzが示唆したように)?私は確かに私のコードの中でこのようなことをしています。 – DNF
'chopfront'と' chopback'が必要です。私はそうではないと確信することができましたが、現在、私は 'ind [1:end-3] 'に比べて特別な利点はありません。特に、現時点では、インデックスは 'AbstractVector'または' AbstractArray'でなければなりません。したがって、すべての有効なインデックスがその種の操作をサポートします。 – tholy
既に 'drop'があるので、' chop'がそれに匹敵すると思っていました。しかし、 '1:end-1'を使用するのは良い解決策です。 – DNF