mirror of
https://gitlab.com/orbital-debris-research/directed-study/report-2.git
synced 2025-06-15 14:36:44 +00:00
45 lines
1.3 KiB
Matlab
45 lines
1.3 KiB
Matlab
clear all
|
|
rng(sum('anson'))
|
|
colormap cool
|
|
|
|
% volume,cx,cy,cz,Ix,Iy,Iz
|
|
scaled_data = readmatrix('C:\Coding\report-2\scaled_dataset.csv');
|
|
scaled_data = scaled_data(:,2:end);
|
|
[coeff,score,latent] = pca(scaled_data);
|
|
|
|
|
|
biplot(coeff(:,1:3),'scores',score(:,1:3),'varlabels',{'c_x','c_y','c_z','I_x','I_y','I_z'});
|
|
title("Center of Gravity Biplot")
|
|
xlabel("Center of Mass x")
|
|
ylabel("Center of Mass y")
|
|
zlabel("Center of Mass z")
|
|
|
|
biplot(coeff(:,4:6),'scores',score(:,4:6),'varlabels',{'c_x','c_y','c_z','I_x','I_y','I_z'});
|
|
title("Inertia Biplot")
|
|
xlabel("I_x")
|
|
ylabel("I_y")
|
|
zlabel("I_z")
|
|
|
|
|
|
data = readmatrix('C:\Coding\report-2\dataset.csv');
|
|
inertia = data(:,end-2:end);
|
|
inertia = rmoutliers(inertia, 'percentile', [0 99]); % remove single huge outlier
|
|
[IDX, C] = kmeans(inertia,3);
|
|
histcounts(IDX)
|
|
scatter3(inertia(:,1), inertia(:,2), inertia(:,3), [], IDX, 'filled')
|
|
inertia = inertia(IDX == 1,:);
|
|
[IDX, C] = kmeans(inertia,3);
|
|
histcounts(IDX)
|
|
|
|
scatter3(inertia(IDX == 1,1), inertia(IDX == 1,2), inertia(IDX == 1,3), 'filled')
|
|
hold on
|
|
for i = 2:max(IDX)
|
|
scatter3(inertia(IDX == i,1), inertia(IDX == i,2), inertia(IDX == i,3), 'filled')
|
|
end
|
|
|
|
legend("Cluster 1", "Cluster 2", "Cluster 3", "Cluster 4")
|
|
|
|
title("Satellite Parts Moments of Inertia (mm^4)")
|
|
xlabel("I_x")
|
|
ylabel("I_y")
|
|
zlabel("I_z") |