C’s メモ

勉強のメモ。

Octaveは1から数え始めるらしい

PythonやCは要素番号は0から始まっていたけど、Octaveは1から始まるらしいということがわかったからメモ。

(余談:Visual Basic for Applicationはデフォルトが0からだったけど、1にすることもできる!)



要素番号が1かららしいと分かった経緯↓

行列Aを以下のように定めて、

A = [16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1]

(Aはこんな見た目)

A =

   16    2    3   13
    5   11   10    8
    9    7    6   12
    4   14   15    1


Bにその一部(最初の2列)を代入したい!
正しいやり方のうちの一つは、以下のように。

>> B = A(:,1:2)
B =

   16    2
    5   11
    9    7
    4   14

だけど、PythonとかCとかのノリで0が最初の要素番号だと思ってやってしまうと失敗する(泣)

失敗した様子↓

>> B = A(:,0:2)
error: subscript indices must be either positive integers less than 2^31 or logicals



ついでに、Octaveで1:2と書くと1も2も含まれるっぽい。(両端を含む)