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!