('a') は Z.a と等価である.文字列のところは,もちろん中身が文字列の変数を利用できる.今回は z{1} を用いた.これが「変数によるフィールド名の参照」である.

* とします。 .を付けない場合は行列の乗算 A×B の結果になります。, 特定の値を持つ行列を作成できる関数もあります。 例えば以下のような関数は良く利用することになると思います。, この例では、2行3列の全てが0の行列A、全てが1の行列B、-10~10の間の乱数を持つ行列C を作成しています。, コロンを使用すると、等間隔の数列が作成できます。 書き方は 「最初の数:増減させる数:最後の数」です。 増減させる数は、負の数や少数も可能です。省略すると1ずつ増加という意味になります。, こちらも非常によく使用するので覚えておきましょう。 行列の行と列を入れ替える(転置)するには ‘ (アポストロフィ)を使います。, 文字列(string配列)は”(ダブルクォーテーション(二重引用符))で囲います。+ で文字列の要素に別の文字列を連結することができます。, 数字(numeric)は、既定ではdouble(倍精度浮動小数点)として扱われます。 他の数値型で作成する場合は, まずは数字(numeric)、文字列(string)、論理値(logical)ぐらいを覚えておけば良いでしょう。, このうち、もっとも一般的なものは1です。とりあえずこれだけ知っておけば問題ありません。, 2の方法はあまり使用しないと思いますが、3は知っておくと便利です。 それぞれ例を見ていきましょう。, これは()で明示的に行番号と列番号を指定する方法です。 コロン(:)で、範囲を指定することが出来ます。, この例ではそれぞれ、 2行目、3列目の要素である 6 2行目、1列目から3列目の要素である 4, 5, 6 にアクセスしています。, 行や列の最後は「end」で指定することもできます。 いちいち行数や列数を調べなくても最後の要素にアクセスできるので便利です。, 全ての行や列を指定する場合はコロンだけを用います。 A(:,2) は全行の2列目、という意味になります。, これは例を見てみるのが分かり易いと思います。 Cが「線形インデックス付け」によるアクセス方法です。Bは先に述べた「位置によるインデックス付け」です。, MATLABは行列を表示していますが、内部的には赤矢印の順に単一の列して値を保持しています。 よって、A(4)で単一の列の4番目、つまり5にアクセスすることができます。, この方法が役に立つのは、配列のサイズや形状を気にしたくない場合です。 全要素の合計を求めるような場合は、このようなやり方で計算できます。, で全要素が合計できます。線形インデント付けは今後のために知っておいた方が良いのですが、あまり意識することはないかもしれません。, A < B のような関係演算子では論理値(logical配列)が取得できます。 次にB(index)とすることで、論理値indexが1(true)の要素のみを取り出すことが出来ます。 この後は、C(1)、C(2)のように、関係演算子の結果が1(true)の要素だけにアクセスできます。, これまでは非常に簡単な処理でしたので、コマンドウィンドウで実行してきましたが、 通常、MATLABのコードは、mファイルというスクリプトに処理を記述します。 スクリプトに記述すると、処理の途中で止めたり、値を参照したりと、 途中の結果の正しさを検証する(デバッグする)ことができます。, 以降、スクリプトの作成方法から実行、デバッグ方法について、 必ず知っておくべき使用方法を説明していきます。, [ホーム] タブの「新規スクリプト」をクリックすると、 空のスクリプトが作成されます, エディターで処理を記述します。 なお、外部のエディターより、MATLABのエディターで編集することをおすすめします。 MATLABの構文に沿っているか指摘してくれたり、自動でインデントをつけてくれたり、 関数のヘルプが見れたりと、何かとありがたい機能が付いています。, 複数行まとめてコメントアウト(処理の無効化)をする場合は%{  }% で囲います。, 行をまとめて選択し、上部の「%」をクリックすると複数行まとめてコメントアウトできます。 いちいち行の先頭にカーソルを合わせて%を書かなくてよいので、 複数行まとめてコメントアウトする場合は、このボタンを使った方が効率が良いです。, 画面左のリストから、スクリプトファイルを選び、コマンドウィンドウにドラッグアンドドロップしても実行できます。, コマンドウィンドウには run(‘スクリプトファイルのパス’) と出力されて実行されます。run()は指定したスクリプトファイルを実行する関数です。スクリプト内で、別のスクリプトを呼び出す場合にも使用します。, エディター画面の各行左端の ― の部分をクリックすると赤い●のブレークポイントが設定されます。, この状態で実行するとブレークポイントで実行が停止し、デバッグメニューが選択できるようになります。, ブレークポイントで止めているとき、変数の上にカーソルを置くと、その時点のその変数の値が表示されます。途中結果を確認した場合に便利ですね。, ブレークポイントで止めなくても、disp()を使用して値を表示させることでデバッグする方法も効率的です。disp()は、他のプログラミング言語でいうと、print()やprintf()に相当するもので、スクリプト内の変数の値や文字列をコマンドウィンドウに出力させることができます。, ここでは例として、1から10の範囲の乱数を1行5列の行列に格納し、5以下と5より大きい数の出現数を数える、それを20回繰り返して合計数をコマンドウィンドウに出力するというスクリプトを作ってみました。, disp(“文字列”) で与えた文字列が出力されます。num2str(数値)では、数値を文字列に変換しています。+ 演算子で文字列同士を結合しています。, なお、randi()は乱数の発生、find()では条件に合致する要素のインデックスの取得、numel()で行列の要素の数を取得をしています。, コード内に %% を記述すると、セクションとして区切ることができます。コードの目次になるので見やすくなります。, また、セクションを記述しておくと、スクリプトファイルを選択すると、MATLABの画面左下にあるエリアにセクション一覧が表示され、そこから任意のセクションの位置に移動する事ができます。長いコードになると非常に便利です。, セクションを記述しておくと、スクリプト内をセクション単位で実行することが可能になります。大規模なコードの場合、特定の処理のまとまりだけを実行、デバッグできるので便利です。, 数字の上や横にカーソルを置いた状態で、右クリック、[値のインクリメントおよびセクションの実行]を選択します。この例では 1行目の A=1 の右辺の1 で右クリックしています。, 小さなダイアログボックスが表示されますので、+を押すと、Aが1.0増加された値(=2)に変化し、また同時にAが2の状態でスクリプトが実行されます。よって+を押すたびに、Aの数字が変わるとともに、Aの値を使用しているEの結果も変化しています。, 「-」のボタンを押せば入力されている数値だけ引いた値になり実行されます。「÷」や「×」も同様に、その横に入力されている数値だけ、割った値、掛けた値に変化して実行されます。, なお、コードをセクションで区切っている場合は、値の変化と実行は選択しているセクションの中にだけ影響します。, これは覚えておくべき必須の機能では無いのですが、知っておいた方が便利ですので紹介します。, 画面上部の[新規作成]-[ライブ スクリプト]を押すと、mlxという拡張子のファイルが開かれ、[ライブエディター]というタブが表示されます。, [ライブエディター]のタブでは「テキスト」か「コード」を選択します。テキストでは文字を太字にしたり箇条書きにすることができます。コードは通常のスクリプトと同様に実行される処理を記載します。, [表示]のタブから表示に関する設定ができます。出力結果の表示方法として[インラインで出力]とすると、エディタ画面内でコードの下に結果が表示され、[右側に出力」を選択すると、エディタ画面が2分割され右側に結果が表示されます。, このように、通常のスクリプトと異なり、多様な表現が可能になります。他の人にコードの詳しい説明をする場合に便利ですね。動く仕様書・説明書といったところでしょうか。, ただし、通常のスクリプトより動作が重くなります。このような表現が必要な場合以外は無理して使う必要はありません。コードの見やすさを上げる場合は、コード内にコメントやセクションをきちんと書いておけば十分だと思います。, MATLABは他のプログラミング言語に比べてデータの可視化が得意です。簡単な記述や操作でできます。特に覚えておくべきことを説明していきます。, データのプロット(グラフ化)は、plot 関数を使います。2次元の場合は、plot(x,y)でx軸、y軸の値を指定します。実行するとFigureという形式のウィンドウの中にプロットされます。以下はy=x^2をプロットした例です。, plot()の引数で、色や、マーカー、ラインのスタイルを設定できます。詳細は公式ドキュメントのplotのページを参照ください。ここでも簡単に紹介します。, マーカーの種類はたくさんありますが、とりあえず4つぐらい覚えておけば良いかと思います。以下は見た目と記号が一致しているので覚えやすいです。, 色は8種類です。これらは1文字で省略した場合ですが、省略せず例えば’red’と入力しても赤色になります。, 色、マーカー、ラインスタイルは順不同で、省略もできます。例えば、‘r*:’ とすると * 型のマーカー、点線のライン、赤色になります。, のように、マーカーを指定して、ラインスタイルを省略すれば、ラインのないプロットになります。, title(), xlabel(), ylabel()関数を用いてグラフにタイトルや軸のラベルを付けることができます。, これは、既定の設定ではアンダーバーが「下付き文字」を意味する特殊な扱いになっているためです。, そのまま表示させるには直前に「\(バックスラッシュ)(円記号) 」を付けます。なお「^(ハット)」を付けると上付き文字になります。, もしくは以下のように引数に ‘interpreter’,‘none’ を付けて、このような特殊文字の扱いをオフする設定にすると、引数で入力した文字が変換されません。, 1.の方法では、「hold on」で現在のプロットを保持したまま次のプロットを重ねて表示させます。以下の例ではy=x^2のプロットを保持したまま、y=xのプロットを青色で追加しています。, 2.の方法では以下のような書き方になります。3つ以上重ね合わせる場合でも同様です。, 最初から重ね合わせることがわかっているなら2.の方が若干コードが短くなります。1.の方は既存のプロットに後から追加することになった場合に向いています。, subplot()で1つのFigureの中に複数のグラフを行列の形で並べることができます。subplot(m,n,p)で、Figure をm行n列のグリッドに分割し、pで指定された位置にグラフを作成するという意味になります。以下の例では、2行1列の並びで2つのsubplotを作成しています。, subplotは1つのFigure(Window)内に並べるために使用しますが、単に, と実行すれば新規の空のFigureを作成できますので、Windowを分けても良い場合は都度Figureを作成してそこにプロットすれば良いでしょう。, この例では「grid on」により、グリッドラインを表示させています。3次元になるとグリッドラインがある方が見やすいかと思います。, なお、3次元プロットでは scatter3() がおすすめです。scatter3は、ラインのない点だけを○で表示する散布図で、例えば3次元の点データを気軽にプロットするのに向いています。最初からグリッドライン表示がありになっています。, ここまでコード上でプロットを作成する方法を説明してきましたが、実は画面操作で非常に簡単にプロットする方法があります。知っておくとデータの可視化や解析がかなり効率化できますので是非覚えておいてください。, ワークスペースの中からプロットしたい変数を選択し、右クリックすると、図のようなリストが表示されます。CtrlやShiftキーで複数の変数を選択できます。plot(x,y)を選択すればこれだけでplot(x,y)がコマンド実行されてプロットされます。, [プロット]タブからの実行はさらにおすすめです。選択した変数が左端に表示されており、後は右に候補となるグラフの種類が出ているのでそこから選んでクリックするだけでプロットされます。, なお、右の方にあるオプションで、「新規Figure」にチェックを入れると、毎回別のFigureウィンドウでプロットされます。上書きしたくない場合はチェックしておきましょう。同じFigureに表示させる場合は「Figureの再利用」をチェックします。, 3次元の場合も同様です。x,y,zの3つの変数を選択すると、候補となるグラフが3次元用のものに変わります。おすすめのグラフ形式を表示してくれるのは在り難いです。, プロットタブを利用すると、サクッと色々な形式でデータの可視化が出来ます。非常に便利ですね。, なお、変数の範囲を指定してプロットすることもできます。ワークスペースから変数をダブルクリックして、エディターに中身を表示させます。CtrlやShiftキーで表示したい範囲を選択すると、画面左上の変数がx(1,1:6)のように範囲選択された状態になります。このままplot などのグラフを選択すればその範囲だけをプロットできます。, ただし、複数の変数を指定した範囲選択はできないようです。(ご存知の方がいたら教えてください。), Figureウィンドウでは、データの保存やタイトル、ラベルなどの設定を画面上で行うことができます。ラベルやタイトルの編集・追加は[挿入]から選択します。, 他にも多数の機能があるのですが、ここではとりあえず覚えておくべきおすすめの機能を紹介します。, これはプロットしているデータの座標を表示する機能です。データカーソルのアイコンを押して、プロットしているデータ上で左クリックを押すと、座標が表示されます。Shiftキーを押しながらクリックすれば複数表示することができます。着目したい点の座標を確認したい場合に使用します。, なお、この例は公式ドキュメントに従って、MATLABのロゴをプロットしたものです。, 特に3次元のプロットでは視点を変えたい場合があります。その場合は「3次元回転」をクリックした後、クリックしたままプロット画像内を移動させることで軸を回転させることができます。, こちらの動画は、MATLABロゴのプロットを3次元回転させています。右クリックして「元の表示にリセット」を選択すると元の状態に戻ります。, 本記事ではこれからMATLABを使う方に向けて、是非覚えておいていただきたい必須の知識や使い方を、図や例も示しながら紹介しました。実際に使っている人でも、意外と知らない機能もあったのではないでしょうか。, MATLABは本当に機能が豊富で、ここで挙げたものはまだまだ一部に過ぎませんが、何をするにしても覚えておくべきものをまとめましたので、是非参考にしていただければと思います。, プログラミング言語としても、ツールとしても本当に利用価値の高いものだと思いますので、MATLABで、計算、アルゴリズムの検証、データの解析、データの可視化、AI、自動運転、何でも取り組んでみましょう。, 最後に筆者のおすすめの初心者向けの本を紹介しておきます。ご興味があれば見てみてください。MATLABプログラミング入門急にMATLAB/Simulinkを使うことになった時に読む本はじめてのMATLAB, 長くなりましたが、ご覧いただきまして有難うございました。良ければコメントもご自由にお書き下さい。改善要望などあれば参考にさせていただきます。, MATLABの例題が使えません。ローカルにファイルが無いようです。 どうすれば使えるようになるでしょうか? 例えばopenExampleやloadコマンドでエラーが出てしまいます。 よろしくお願いします。, お問い合わせ有難うございます。実際に実行したコマンド、ソースコードや、エラーの内容を記載いただけますでしょうか?, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, とあるソフトウェアエンジニアのブログです。C言語を中心に、C++、Java、Python、MATLABなど。下っ端プログラマーからプロジェクトマネージャーまで、それなりの経験は積んできました。自分の中で蓄積されたものや体系的に整理できたものがありますので、それらを形にしたいと思っています。良ければフォローお願い致します。, 世界中の何百万人もの技術者や科学者が MATLAB を使用して、世界を変えるシステムや製品を解析および設計しています。, この MATLAB 関数 は、X の値に対応する Y のデータの 2 次元ライン プロットを作成します。, MATLAB ロゴの作成 - MATLAB & Simulink Example - MathWorks 日本.