作った3次元プロットをMatlab上と同じようにそのままGUI上で操作できるように保存するにはどうすれば良いですか?
10 views (last 30 days)
Show older comments
作った3次元プロットをMatlab上と同じようにそのままGUI上で操作できるように保存するにはどうすれば良いですか?
そのために必要なソフトを追加でインストールする必要はありますか?
拡張子はどうすれば良いでしょうか。
おすすめがあれば教えていただきたいです。
0 Comments
Accepted Answer
Tak
on 31 Jan 2024
Edited: Tak
on 31 Jan 2024
以下の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')
More Answers (0)
See Also
Categories
Find more on モデルのインポート in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!