はじめに
初投稿、matlabの小ネタです。
添字を変換する
matlabの添字は1から数えます。
そのため、以下のようにmodを取って添字の繰り返しに変換しようとすると…
当然ですが、5列目の値は0になります。
添字としてはここは5にしたいので、あとで0→5に変換します。
>> A = [1:5; 6:10]
A =
1 2 3 4 5
6 7 8 9 10
>> mod(A, 5)
ans =
1 2 3 4 0
1 2 3 4 0
>> ans(ans==0)=5
ans =
1 2 3 4 5
1 2 3 4 5
一行にしたい!
このためにわざわざ二行も使いたくない!と思い、以下のようにしました。
>> mod(A-1,5)+1
ans =
1 2 3 4 5
1 2 3 4 5
スッキリ!
以上、おしまーい。