作った3次元プロットをMatlab上と同じようにそのままGUI上で操作できるように保存するにはどうすれば良いですか?
16 次查看(过去 30 天)
显示 更早的评论
作った3次元プロットをMatlab上と同じようにそのままGUI上で操作できるように保存するにはどうすれば良いですか?
そのために必要なソフトを追加でインストールする必要はありますか?
拡張子はどうすれば良いでしょうか。
おすすめがあれば教えていただきたいです。
0 个评论
采纳的回答
Tak
2024-1-31
编辑:Tak
2024-1-31
以下の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')
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!