MATLAB,Python,Scilab,Julia比較 その15【基本的な使い方⑤】

MATLAB,Python,Scilab,Julia比較 その15【基本的な使い方⑤】 数値計算
MATLAB,Python,Scilab,Julia比較 その15【基本的な使い方⑤】

バックナンバーはこちら。
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の書き方になることが多い。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました