Skip to content

Commit f46b170

Browse files
committed
Fix MLPCA when not using only X,Y,Z
1 parent 8688db9 commit f46b170

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

Libs/Particles/ParticleShapeStatistics.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -212,12 +212,13 @@ void ParticleShapeStatistics::compute_multi_level_analysis_statistics(std::vecto
212212
m += (this->num_particles_array_[idx]);
213213
}
214214
super_matrix_.resize(m, n);
215+
215216
for (unsigned int i = 0; i < points.size(); i++) {
216217
unsigned int p = super_matrix_.rows();
217218
for (unsigned int j = 0; j < p; j++) {
218-
super_matrix_(j, i * values_per_particle_) = points[i][j * values_per_particle_];
219-
super_matrix_(j, i * values_per_particle_ + 1) = points[i][j * values_per_particle_ + 1];
220-
super_matrix_(j, i * values_per_particle_ + 2) = points[i][j * values_per_particle_ + 2];
219+
for (int k = 0; k < values_per_particle_; k++) {
220+
super_matrix_(j, i * values_per_particle_ + k) = points[i][j * values_per_particle_ + k];
221+
}
221222
}
222223
}
223224

@@ -263,9 +264,9 @@ void ParticleShapeStatistics::compute_multi_level_analysis_statistics(std::vecto
263264
for (unsigned int i = 0; i < num_samples_; i++) {
264265
unsigned int p = m;
265266
for (unsigned int j = 0; j < p; j++) {
266-
z_shape_dev_objective(j * values_per_particle_, i) = z_shape_dev_centered(j, i * values_per_particle_);
267-
z_shape_dev_objective(j * values_per_particle_ + 1, i) = z_shape_dev_centered(j, i * values_per_particle_ + 1);
268-
z_shape_dev_objective(j * values_per_particle_ + 2, i) = z_shape_dev_centered(j, i * values_per_particle_ + 2);
267+
for (int k = 0; k < values_per_particle_; k++) {
268+
z_shape_dev_objective(j * values_per_particle_ + k, i) = z_shape_dev_centered(j, i * values_per_particle_ + k);
269+
}
269270
}
270271
}
271272
points_minus_mean_shape_dev_.resize(M, num_samples_);
@@ -277,9 +278,9 @@ void ParticleShapeStatistics::compute_multi_level_analysis_statistics(std::vecto
277278
z_rel_pose_objective.resize(domains_per_shape_ * values_per_particle_, num_samples_);
278279
for (unsigned int k = 0; k < domains_per_shape_; k++) {
279280
for (unsigned int i = 0; i < num_samples_; i++) {
280-
z_rel_pose_objective(k * values_per_particle_, i) = z_rel_pose_centered(k, i * values_per_particle_);
281-
z_rel_pose_objective(k * values_per_particle_ + 1, i) = z_rel_pose_centered(k, i * values_per_particle_ + 1);
282-
z_rel_pose_objective(k * values_per_particle_ + 2, i) = z_rel_pose_centered(k, i * values_per_particle_ + 2);
281+
for (int j = 0; j < values_per_particle_; j++) {
282+
z_rel_pose_objective(k * values_per_particle_ + j, i) = z_rel_pose_centered(k, i * values_per_particle_ + j);
283+
}
283284
}
284285
}
285286
points_minus_mean_rel_pose_.resize(domains_per_shape_ * values_per_particle_, num_samples_);

0 commit comments

Comments
 (0)