user/pages/09.software/38.matlab/docs.ja.md
452be89a
 ---
 title: MATLAB
 published: true
 taxonomy:
     category:
         - docs
 external_links:
     process: true
     no_follow: true
     target: _blank
     mode: active
360259eb
 media_order: 'matlab_example_01.png,matlab_example_02.png,matlab_initial_login.png,parallel_1.png,parallel_2.png,parallel_3.png,parallel_4.png,parallel_5.png'
452be89a
 ---
 
 [toc]
 
 ## 利用環境{#enviroment}
 
 
 
 ### 利用できるバージョン・システム{#version}
 
 Modulesソフトウェアパッケージは,アプリケーションの利用に必要な環境設定をmoduleコマンドを実行することで,動的に切り替えて設定することができます.また,異なるバージョンのアプリケーション
 を切り替えて利用する際に,簡単に環境設定を変更することができます.詳細は [Modules](/config/modules) をご覧ください.
 
 module avail コマンドにて,利用できるモジュールファイル一覧が確認できます.
 
495abba5
 バージョン            | モジュールファイル名 | システムA | システムB/C/G  | クラウドシステム
 --------------------  | -------------------- | -----          | ----- | ---
  2023a (default)      | matlab/R2023a       | - | KU             | -
452be89a
 
  
 KU : 京都大学構成員限定で利用可能<br>
 \- : 利用不可  
 
 ## 機能概要{#overview}
 
 
 MATLABは、計算、可視化、プログラミング機能を統合した技術計算のための高性能言語です。エンジニアリングや科学技術問題の基本であるベクトルとマトリックスの演算をサポートしています。線形代数をはじめ偏微分方程式など、様々な数学的関数をデータ解析に利用でき、データ可視化のための 2次元/3次元画像関数を備えています。また、C、C++、Fortran といった他の言語のサブルーチンを組み込み関数のように呼び出すことができます。
 
 MATLABでは、基本機能以外に特別なクラスの問題に対応できるように拡張されMATLAB関数を集めたToolboxを用いることにより幅広い分野に対応できるようになっています。
 
 
 ### オプション{#option}
 
 * **Simulink**  
 
 Simulink はマルチドメインシミュレーションやダイナミックシステム、および組込みシステムのモデルベースデザインのためのプラットフォームです。対話型グラフィカル環境およびブロックライブラリ群により、通信、制御、動画像処理、静止画像処理を含め、時間依存システムの設計、シミュレーション、実装、テストが可能です。
 
 
 
 ### 利用分野{#app-area}
 
 * 信号・画像処理
 * 通信システム設計
 * 制御系設計
 * 実験計測
 * 金融工学におけるモデリングと解析
 * コンピュータを利用した生命工学 など
 
 
 ### 利用可能なツールボックス{#toolbox}
 
 MATLAB起動後に、コマンドウィンドウで `ver` コマンドを入力することで確認いただけます。
 
 ## 利用方法{#usage}
 
 
 
 ### 環境設定(moduleコマンドの実行){#env_set}
 
 moduleコマンドを実行し、環境設定を行います。(利用したいバージョンのmoduleファイルをロードします)
 
 
 ```nohighlight
 $ module load matlab
 ```
 
 ### MATLAB{#matlab}
 
 
 #### GUIモード
 
 FastX, NiceDCV等X Window Systemが利用可能な環境でログインした後に、次のコマンドを実行するとMATLABが起動します。
 tssrun コマンドの詳細は [会話型処理](/run/interactive) をご覧ください。
 
 
 ```nohighlight
 $ tssrun --x11 matlab
 ```
 
 **メニューバー** の **File** 内にある **Exit MATLAB** をクリックするとMATLABが終了します。
 ![](matlab_example_01.png)
 
 
 なお、初回起動時は以下のようなログイン画面が表示されます。京都大学構成員の方は全学アドレス
 (@kyoto-u.ac.jp または @st.kyoto-u.ac.jp)を入力してください。
 ![](matlab_initial_login.png)
 
 
 #### CUIモード
 
 次のオプションを指定し、コマンドを実行するとMATLABが起動します。 **tssrun** コマンドの詳細は [会話型処理](/run/interactive) をご覧ください。
 
 
 ```nohighlight
 $ tssrun matlab -nodesktop -nosplash
 ```
 
 
 次のコマンドを実行するとMATLABが終了します。
 
 
 ```nohighlight
 >> quit
 ```
 
1b0aeb6a
 #### 起動に失敗する場合の対処
 MATLABを起動した際に、
 **Unable to communicate with required MathWorks services (error 5201).**
 といったエラーが表示された場合は、以下の手順を行うことで改善されることが
 ありますので、お試しください。
 
 ```nohighlight
 $ rm -rf ~/.MathWorks/ServiceHost/*/v[0-9]*
 ```
 
360259eb
 ### MATLAB Parallel Computing Toolbox{#matlab_parallel}
 Parallel Computing Toolboxを用いて複数ワーカーで並列処理を行うことで、計算時間を短縮することが可能です。
 
 #### クラスタープロファイルの設定方法
 1. Parallel > Create and Manage Clusters をクリックします。
 ![](parallel_1.png?resize=400)
 2. Add Cluster Profile > Slurm をクリックします。
 ![](parallel_2.png?resize=400)
 Product Required の画面が出てきた場合、"OK" をクリックしてください。
 ![](parallel_3.png?resize=400)
 3. プロファイルの設定画面が出てきますので、次の項目を記入します。
 * **Root folder of MATLAB installation for workers ClusterMatlabRoot**:<br> /opt/system/app/matlab_parallel_server/R2023a_up4 (MATLAB 2023aの場合)
 * **Resource arguments for job submission**: <br> --rsc p=^N^:t=^T^:c=^T^
 * **Additional command line arguments for job submission Submitarguments**:<br> -p <キュー名>
 
 その他の項目は任意です。
 
 **Root folder of MATLAB installation for workers ClusterMatlabRoot** で指定するフォルダは、MATLABのバージョンによって異なります。
 下記を参考に指定してください。
 
 バージョン | フォルダ
 --- | ---
 2023a | /opt/system/app/matlab_parallel_server/R2023a_up4
 
 ![](parallel_4.png?lightbox=100%&resize=400)
 4. 設定が終了したら、"Done" をクリックします。
 
 #### 動作確認
 1. Validation タブを開いて、"Validate"をクリックします。
 ![](parallel_5.png?lightbox=100%&resize=400)
 2. テストが終了し、"Status"が"Passed"になっていれば問題ありません。"Failed"の場合、"Properties"から設定を見直してください。
 3. 設定が終了したら、右上の "×" をクリックしてCluster Profile Manager の画面を閉じます。
 
 
 #### クラスタープロファイルの使用方法
 入力ファイル(xxxxxxxx.m)内で、クラスタープロファイル(例:SlurmProfile1)を指定します。
 ```nohighlight
 c = parcluster('SlurmProfile1')
 parpool(c,4)
 parfor i = 1:n
     a(i) = max(abs(eig(rand(A))));
 end
 
 delete(gcp('nocreate'))
 ```
 
452be89a
 ### Simulink{#simulink}
 
 SimulinkはMATLAB環境と統合されており、MATLABの Command Window から以下のコマンドを入力することで、起動できます。
 
 
 ```nohighlight
 >> simulink
 ```
 
 
 ![](matlab_example_02.png)
 
 次のコマンドを実行するとSimulinkが終了します。
 
 「メニューバー」の「File」内にある「Close」をクリックしするとSimulinkが終了します。
 
 
 ### MATLAB Compiler{#matlab_comp}
 
 MATLABのmファイルをC/C++のソースファイルに変換してコンパイルし、スタンドアローンで実行可能なファイルを作成することができます。
 
 
 #### コンパイル方法
 
 MATLABを起動し、 Command Window から以下のコマンドを入力することで、コンパイルできます。
 
 
 ```nohighlight
 >> mcc -m 入力ファイル名
 ```
 
 
 
 #### 入出力ファイル
 
 入力ファイル名は、xxxxxxxx.m のように、サフィックスに m を付けます。  
 出力ファイルは以下のようなものが生成されます。
 
 
 ```nohighlight
 「xxxxxxxx 」…実行ファイル
 「run_xxxxxxxx.sh」…実行ファイルを起動するためのスクリプト
 「xxxxxxxx_mcc_component_data.c」
 「xxxxxxxx.prj」
 「xxxxxxxx_main.c」
 「mccExcludedFiles.log」
 「readme.txt」
 ```
 
 
 
 ### MATLABからの外部プログラムの呼び出し{#matlab_excall}
 
 MEX-ファイルを作成することで、MATLABからCまたはFortranのサブルーチンを組み込み関数のように呼び出すことができます。
 
 MATLABを起動し、 Command Window から以下のコマンドを入力することで、コンパイルできます。
 
 
 ```nohighlight
 >> mex ファイル名
 ```
 
 ## 参考資料{#references}
 ### 日本語{#ref_ja}
 
 * [製品ドキュメンテーション(The MathWorks, Inc.)](http://www.mathworks.co.jp/access/helpdesk_ja_JP/help/helpdesk.html)
 
 
 ### 英語{#ref_en}
 
 * [Documentation Center (MathWorks, Inc.)](http://www.mathworks.co.jp/help/documentation-center.html)
 
 
 ## リンク{#link}
 
 
 
 ### 外部リンク{#ex_link}
 
 * [マスワークス公式日本語サイト(The MathWorks, Inc.)](http://www.mathworks.co.jp/)