作った3次元プロット​をMatlab上と同​じようにそのままGU​I上で操作できるよう​に保存するにはどうす​れば良いですか?

作った3次元プロットをMatlab上と同じようにそのままGUI上で操作できるように保存するにはどうすれば良いですか?
そのために必要なソフトを追加でインストールする必要はありますか?
拡張子はどうすれば良いでしょうか。
おすすめがあれば教えていただきたいです。

 採用された回答

Tak
Tak 2024 年 1 月 31 日
編集済み: Tak 2024 年 1 月 31 日

1 投票

以下の3つの方法を提示してみます。
1.App Designer によるアプリ化
ひとつの方法は MATLAB App Designer の機能でアプリ化してしまうことです。作成したアプリでは MATLABの figure ウィンドウと同じ操作が可能になります。
非MATLAB環境でも動作するアプリを作成するには MATLAB Compiler が必要です。
また、非MATLAB環境の端末には Runtime をインストールする必要があります。
現状の解析結果をエクスポートするという使い方には不向きですが、解析から3次元のデータビュアーまで…と一通りの機能を持たせるのであればこちらがおすすめです。
クラス(オブジェクト指向)としてコードを書く必要があるため、コーディングの難易度はやや高くなりますが、ご質問の内容に近い例題も豊富にあります。
2.テーブルデータとしてエクスポート
MATLABから直接 3次元オブジェクトの形式 としてエクスポートする機能はありませんが、3次元の点群情報を CSVやスプレッドシート形式のテーブルデータ としてなら保存することが可能です。
これらの形式であればCADソフトやデータビュアーなど、様々な環境でインポートが可能な場合があります。
CSV形式としてエクスポートする例
% 3次元プロットの乱数データを生成
x = rand(15,1);
y = rand(15,1);
z = rand(15,1);
% CSV形式としてエクスポート
writetable(table(x,y,z), 'csvfile.csv')
3.STL形式としてエクスポート
テーブルデータの他としては STLデータ としてなら保存することが可能です。
CADソフトなどでインポートが可能な場合が多いですが、あくまで3次元形状データですので、点群として描画可能か、MATLABのようにグラフ軸なども描画できるかは、お使いになられるソフトの機能に依存します。
STL形式としてエクスポートする例
% 3次元プロットの乱数データを生成
x = rand(15,1);
y = rand(15,1);
z = rand(15,1);
% 点群データから四面体(tetra)を生成
DT = delaunayTriangulation(x,y,z)
% 四面体(tetra)から三角形(tria)へ変換
p = DT.Points;
t = [DT.ConnectivityList(:,[1 2 3]);
DT.ConnectivityList(:,[1 2 4]);
DT.ConnectivityList(:,[1 3 4]);
DT.ConnectivityList(:,[2 3 4])];
TR = triangulation(t,p);
% STLファイルとしてエクスポート
stlwrite(TR, 'stlfile.stl')

1 件のコメント

KO
KO 2024 年 3 月 5 日
移動済み: Atsushi Ueno 2024 年 3 月 5 日
ご丁寧にありがとうございました。
1,2の方法からまず試してみたいと思います。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchangeライティング、透明度、およびシェーディング についてさらに検索

製品

リリース

R2022a

タグ

質問済み:

KO
2024 年 1 月 31 日

移動済み:

2024 年 3 月 5 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!