나는 matlab/octave에 쓴 몇 가지 코드를 포팅하여 numpy를 시도하고있다. matlab에, 나는 파이썬 슬라이스의 등가물을 정의 할 수 있고 필요에 따라 그것을 늘릴 수있다. 예를 들어, 내 MATLAB 코드에 나는에파이썬에서 슬라이스를 증가시킬 수 있습니까?
HXx_range = 1:NHXx;
HXy_range = 1:NHXy;
blah blah blah
Hx(HXx_range, HXy_range) = Da(Hx_media(HXx_range, HXy_range)).*Hx(HXx_range, HXy_range) + Db(Hx_media(HXx_range, HXy_range)).*(Ez(HXx_range,HXy_range) - Ez(HXx_range,**HXy_range+1**));
Hy(HYx_range, HYy_range) = Da(Hy_media(HYx_range, HYy_range)).*Hy(HYx_range, HYy_range) + Db(Hy_media(HYx_range, HYy_range)).*(Ez(**HYx_range+1**,HYy_range) - Ez(HYx_range,HYy_range));
Ez(EZx_range, EZy_range) = Ca(Ez_media(EZx_range, EZy_range)).*Ez(EZx_range, EZy_range) + Cb(Ez_media(EZx_range, EZy_range)).*(Hy(EZx_range,EZy_range) - Hy(**EZx_range-1**,EZy_range) + Hx(EZx_range,**EZy_range-1**) - Hx(EZx_range,EZy_range));
용어가 '**의 핵심 부품 그들은이다 ('HXy_range + 1 '과 같은); HXy_range + 1은 2 : (NHXy + 1)과 같습니다. 파이썬에서는 비슷한 방법으로 슬라이스를 정의 할 수 있습니다.
HXx_range = slice(0, NHXx)
그러나 HXx_range +1을 사용하면 오류가 발생합니다. 물론, 나는 그것을 위해 새로운 슬라이스를 만들 수는 있지만 깨끗하지는 않습니다. 이 문제를 해결할 방법이 있습니까?
감사합니다.
증분 슬라이스의 예상되는 동작은 무엇입니까? 시작을 더 높이시겠습니까? 끝? 양자 모두? – robert
예상되는 동작은 MATLAB 코드에서와 동일합니다 : 둘 다 증가 - 슬라이스를 주어진 양만큼 효과적으로 이동시킵니다. – lnmaurer