バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/
はじめに
前回は、Juliaの基本的な使い方について。
基本的にはMATLABと一緒ではあるが、
区間演算子で表現された段階では実態を持たないなどのクセの違いがあった。
基本的な使い方としてはまだちょっと続きがある。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
基本的な使い方の続き
とりあえず、基本的な使い方は抑えたかんじかな。
あと、スライシングも押さえておいた方が良いかもしれん。
スライシング?
ベクトルまたは行列から特定要素、特定範囲の抜き出しだな。
以前説明した、区間演算子を駆使することになる。
あー、start:step:endみたいな書き方のやつかー。
まずは手馴れたMATLABから見て行った方が良いかもね。
MATLABでスライシング
ざっと、こんな感じだ。
%スライシング
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(1,2)
ans =
2
>> A(2,2)
ans =
5
>> A(2,3)
ans =
6
>> A(2,:)
ans =
4 5 6
>> A(2,2:3)
ans =
5 6
>> A(:,3)
ans =
3
6
9
>>
確かにこんな書き方は良く見るねー。
A(2,:)
の書き方だと、
2行目全部ってことになるのかな?
そうだね。
A(2)
だけだと、行目の先頭の要素しか参照できない。
あと、start:step:endの書き方だけど、
今回の範囲だと、stepを省略している書き方になるのか。
「step=1」の場合は省略可能なんでね。
今回のように特定範囲を抽出する場合は、
ほぼ「step=1」になるので、省略した書き方になることの方が多い。
あんまり、1個飛ばしで抽出ってシーンも少ないもんね。
今後出てくると思うが、「step=-1」ってのはあり得るけど、
これに関してはその時に改めて説明するとしよう。
あと、今回は読み出しのみの使い方をしているが、
書き込みも可能だ。
特定範囲を一気に書き換えるとき使うな。
そうだよねー。
便利な機能過ぎて、C言語で書いてる時に欲しくなっちゃうもん。
まとめ
まとめだよ。
- 基本的な使い方の続きとしてスライシングについて。
- 特定の要素、特定範囲を抽出可能。
- 区間演算子start:step:endを元に範囲抽出するが、step=1なことがほとんどなので、stepを省略したstart:endの書き方になることが多い。
バックナンバーはこちら。
コメント