3軸加速度の結果から体積を求めたいです

조회 수: 7 (최근 30일)
daiki naito
daiki naito 2022년 3월 4일
댓글: daiki naito 2022년 3월 6일
3軸加速度計の結果から、以下の式で3次元にプロットした結果の95%を含む体積を求めようとしています。
4pi / 3×(中心から楕円までの最大長)×(最小長)×(2軸に直行する軸の長さ)
こちらの最大長、最小長、2軸に直行する軸の長さを求める方法の模索に苦慮しています。
これらを求める方法を教えて頂けると幸いです。
  댓글 수: 4
Hernia Baby
Hernia Baby 2022년 3월 5일
ありがとうございます
楕円体が回転体なのか等でアプローチが変わると思います
楕円体が原点とx,y,z軸を通るなら以下に近いアプローチが取れますがいかがですか?
clc,clear
[X,Y,Z]=ellipsoid(0,0,0,6,3.25,3.25);
plot3(X(:),Y(:),Z(:),'--k')
hold on
surf(X,Y,Z,'EdgeColor','none','FaceAlpha',.2)
xline(0)
yline(0)
idx(:,:,1) = abs(X) == max(abs(X),[],'all');
idx(:,:,2) = abs(Y) == max(abs(Y),[],'all');
idx(:,:,3) = abs(Z) == max(abs(Z),[],'all');
for ii = 1:length(idx(1,1,:))
scatter3(X(idx(:,:,ii)),Y(idx(:,:,ii)),Z(idx(:,:,ii)),'red','filled')
end
daiki naito
daiki naito 2022년 3월 5일
ありがとうございます。
求める楕円体は回転体ではございません。
ご教示いただいたアプローチ方法を試してみようと思います。
対応していただき、ありがとうございました。

댓글을 달려면 로그인하십시오.

채택된 답변

Hernia Baby
Hernia Baby 2022년 3월 5일
体積演算まで書いておきます
clc,clear
ここでは原点中心とした楕円体を作成しています。
[X,Y,Z]=ellipsoid(0,0,0,6,3.25,3.25);
fig(X,Y,Z);hold off;
X軸、Y軸、Z軸上で絶対値が最大となる点をとります
X,Y,Zは行列なので行と列での最大を探します
idx(:,:,1) = abs(X) == max(abs(X),[],'all');
idx(:,:,2) = abs(Y) == max(abs(Y),[],'all');
idx(:,:,3) = abs(Z) == max(abs(Z),[],'all');
絶対値なので2点ずつ現れます
fig(X,Y,Z)
for ii = 1:length(idx(1,1,:))
scatter3(X(idx(:,:,ii)),Y(idx(:,:,ii)),Z(idx(:,:,ii)),'red','filled')
end
さて4pi / 3×(中心から楕円までの最大長)×(最小長)×(2軸に直行する軸の長さ)
つまりを求めていきましょう
a = max(X(idx(:,:,1)));
b = max(Y(idx(:,:,2)));
c = max(Z(idx(:,:,3)));
V = 4/3*a*b*c;
fprintf('最大長:%d\n最小長:%d\n2軸に直行する軸長さ:%d\n体積:%d',a,b,c,V);
最大長:6 最小長:3.250000e+00 2軸に直行する軸長さ:3.250000e+00 体積:8.450000e+01
以下は楕円体の図を描写する関数です
function [] = fig(X,Y,Z)
figure
plot3(X(:),Y(:),Z(:),'--k')
hold on
surf(X,Y,Z,'EdgeColor','none','FaceAlpha',.2)
xline(0)
yline(0)
end
  댓글 수: 3
Hernia Baby
Hernia Baby 2022년 3월 6일
懸念していた部分はこの楕円体が平行移動したり、X,Y,Z軸にθ°回転するケースです。今回はそれはなさそうとの事なので記載してません。また何かありましたら、気軽にどうぞ。
daiki naito
daiki naito 2022년 3월 6일
ありがとうございました。 とても助かりました。 また何かありましたらよろしくお願いします。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!