正如你在屏幕截图中看到的,new_mean
的容量是0,尽管我已经创建了一个初始容量为2的容器,因此我得到了索引超出界限的异常。为什么我的向量大小为0?
有谁知道我在做什么错?
更新:下面的代码
private static Vector<Double> get_new_mean(
Tuple<Set<Vector<Double>>, Vector<Double>> cluster,
Vector<Double> v, boolean is_being_added) {
Vector<Double> previous_mean = cluster.y;
int n = previous_mean.size(), set_size = cluster.x.size();
Vector<Double> new_mean = new Vector<Double>(n);
if (is_being_added) {
for (int i = 0; i < n; ++i) {
double temp = set_size * previous_mean.get(i);
double updated_mean = (temp + v.get(i))/(set_size + 1);
new_mean.set(i, updated_mean);
}
} else {
if (set_size > 1) {
for (int i = 0; i < n; ++i) {
double temp = set_size * previous_mean.get(i);
double updated_mean = (temp - v.get(i))/(set_size - 1);
new_mean.set(i, updated_mean);
}
} else {
new_mean = null;
}
}
return new_mean;
}
请发表相关的代码,不只是它的图像。 – Christian
请两分钟,让我们拿我们的眼镜看到这个微观图片。请将您的代码作为文本发布。 –
图片上的文字太小而无法阅读。邮政编码 – Naveed