Solidworks​(ソリッドワークス)​の解析結果のような図​を作製したいです。

8 ビュー (過去 30 日間)
Takeru Katagiri
Takeru Katagiri 2019 年 8 月 24 日
コメント済み: Yoshio 2019 年 8 月 26 日
上のURLの中盤で出てくる、片持ちはりの解析結果のような図面をMATLABで作製したいです。
作製したい図面は二次元で、X-Y平面図上でX、Yの位置を指定し、その指定した位置に、強度を表す数値を色で表したいです。
持っているデータはX位置におけるY位置と、その座標系に一致した強度(kyoudo)を表す数値の二つのエクセルデータです。
Xは7500行 1列
Yは7500行 100列
kyoudoは7500行 100列です。
kyoudoにはマイナスの値も含みます。
よろしくお願いします。
なにか良い手法を教えていただくことはできませんか。
よろしくお願いいたします。

採用された回答

Yoshio
Yoshio 2019 年 8 月 25 日
編集済み: Yoshio 2019 年 8 月 25 日
Kazuyaさんコメントありがとうございます。Kazuyさんの例とデータを参考にして少し変更してみました。
surf(X,Y,Z)は、点(Xi, Yi)におけるZi値を3次元空間の高さとして色付けした3次元図形をプロットします。これを2次元に投影(上から見た図に)するため、view([0 90])を使いました。
結果は殆ど同じ様です。Kazuyaさんのやれた方法(三角形分割、パッチで色付け)が、surfの内部で行われいるやり方かと想像します。
load data_small
col = size(Y,2);
XX = repmat(X, 1, col);
surf(XX,Y,Strength,'EdgeColor','none','FaceColor','interp')
view([0 90])
  4 件のコメント
Takeru Katagiri
Takeru Katagiri 2019 年 8 月 26 日
Yoshioさん
はじめにやってみたとき、真っ黒のグラフになったのはエッジカラーの黒色が原因だったのですね。
自分でプログラミングを理解して初めてその原因に気づけました。
実際にプログラムの解を知ってしまうとこんなに単純にできてしまうのかとMATLABのすごさいを実感しております。
もし伺えたら教えていただきたいのですが、
自分の今回のデータはX-Y座標における強度を示す値の3つの値を引っ張てきましたが、X-Y-Zの三次元で強度を測定したデータがある場合の4つの値を三次元のグラフで表すときもsurfは有効でしょうか?
用途としては三次元のグラフを作って、あるいはデータだけを読み見込ませて、指定した座標位置の強度分布を見れるようにしたいです(Yが○○のときのXZ平面の強度分布が見たい といった感じです)
もし良ければご意見をいただけると助かります。よろしくお願いします。
Yoshio
Yoshio 2019 年 8 月 26 日
こちらが参考になるかと思います。
sliceの例としては、こちらもご参照ください。

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

その他の回答 (2 件)

Yoshio
Yoshio 2019 年 8 月 24 日
編集済み: Yoshio 2019 年 8 月 24 日
以前のご質問に対するKazuyaさんの解答とほぼ同じですが、
X100 = repmat(X, 1, 100);
surf(X100,Y,kyoudo)
view([0 90])
を試してみてください。surfのマニュアルはこちらです。

Kazuya
Kazuya 2019 年 8 月 24 日
こちらに試しにやってみた例を投稿しました。

タグ

Community Treasure Hunt

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

Start Hunting!