Open8

MATLAB on Docker

fjktkmfjktkm

公式イメージをもとに開発コンテナを設定してみた:

{
	"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 を追加する

fjktkmfjktkm

最初に matlab を実行する際には GUI でログインを求められる.

認証情報を追加してもエラーが吐かれる場合がある:

権限が足りないだけなので,sudo を付けるかセキュリティに目をつぶって remoteUserrootにすればエラーが解消されるはず:

fjktkmfjktkm

どうしてデスクトップ PC では動くようになったのか謎なのですが,一応解決のヒントになるかもしれないので,備忘録として思い当たる節を載せておきます:

ここで Ubuntu とかが disable になっていたのを enable にしました.
あと,Docker のバージョンは最新にしました.
でも,ノート PC は同じことしても動かないんだよなぁ...

fjktkmfjktkm

ノート PC の Docker を初期化したら動いた:

思い当たる節を検討すると,設定を変えてからイメージをリビルドしたほうがよかったのかもしれない.
今となっては原因不明.

fjktkmfjktkm

なんでもかんでも

clear all
close all
clc

って書くのはどう考えても悪習だと思う😒

fjktkmfjktkm

拡張機能で 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)];
fjktkmfjktkm
    properties = [m1, m2, l1, l2, lc1, lc2, I1, I2];

        val_t = 500;

ここも調子が悪いですわね
配列的な表現がよくない?