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

17 views (last 30 days)
KO
KO on 31 Jan 2024
Moved: Atsushi Ueno on 5 Mar 2024
作った3次元プロットをMatlab上と同じようにそのままGUI上で操作できるように保存するにはどうすれば良いですか?
そのために必要なソフトを追加でインストールする必要はありますか?
拡張子はどうすれば良いでしょうか。
おすすめがあれば教えていただきたいです。

Accepted Answer

Tak
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')
  1 Comment
KO
KO on 5 Mar 2024
Moved: Atsushi Ueno on 5 Mar 2024
ご丁寧にありがとうございました。
1,2の方法からまず試してみたいと思います。

Sign in to comment.

More Answers (0)

Categories

Find more on データのインポートと解析 in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!