MATLAB on Docker
公式イメージをもとに開発コンテナを設定してみた:
{
"name": "MATLAB",
"image": "mathworks/matlab:R2023b",
"features": {
"ghcr.io/devcontainers/features/git:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"MathWorks.language-matlab"
]
}
}
}
ノート PC だとウィンドウ関連のエラーが出て動作しなかったのに,デスクトップ PC で実行してみると問題なく動作して謎
公式イメージは Git が入っていないため Dev Container の Features で Git を追加する
最初に matlab
を実行する際には GUI でログインを求められる.
認証情報を追加してもエラーが吐かれる場合がある:
権限が足りないだけなので,sudo
を付けるかセキュリティに目をつぶって remoteUser
を root
にすればエラーが解消されるはず:
どうしてデスクトップ PC では動くようになったのか謎なのですが,一応解決のヒントになるかもしれないので,備忘録として思い当たる節を載せておきます:
ここで Ubuntu
とかが disable
になっていたのを enable
にしました.
あと,Docker のバージョンは最新にしました.
でも,ノート PC は同じことしても動かないんだよなぁ...
ノート PC の Docker を初期化したら動いた:
思い当たる節を検討すると,設定を変えてからイメージをリビルドしたほうがよかったのかもしれない.
今となっては原因不明.
拡張機能の MATLAB.installPath
は MATLAB ターミナルで matlabroot
を実行して確認しよう
拡張機能のほうだとでLinux の例として /usr/local/MATLAB/R2022b
が挙げられてるけど,MATLAB 公式イメージだと /opt/matlab/R2024a
にインストールされてるみたいだった
なんでもかんでも
clear all
close all
clc
って書くのはどう考えても悪習だと思う😒
拡張機能で AffenWiesel.matlab-formatter
を追加してみたが,うまくフォーマットされない:
for repeat_i = 1:iteration
save_rend = 0;
load('./data/train/all_traj_06282022.mat')
time_infor.val_length = val_length_rm;
properties (3:4) = [l1_set(l1_idx), l2_set(l2_idx)];
val_and_update;
rmse_parfor_set(repeat_i) = func_rmse(data_pred, data_control, rmse_start_time, rmse_end_time);
aaa = 1;
end
この行に問題があるらしいけどなぜ???:
properties (3:4) = [l1_set(l1_idx), l2_set(l2_idx)];
properties = [m1, m2, l1, l2, lc1, lc2, I1, I2];
val_t = 500;
ここも調子が悪いですわね
配列的な表現がよくない?