Java 如何将数组中的所有项除以一个double?
我是一个完全的初学者,我有一个数组的小问题。 这个程序的目的是计算向量的归一化。第一部分只是将数组的长度计算成名为sum的int,然后我想用这个sum除以数组v中的所有项。正常[]=v[a]/和;这句话显然是个问题,但我该怎么做Java 如何将数组中的所有项除以一个double?,java,Java,我是一个完全的初学者,我有一个数组的小问题。 这个程序的目的是计算向量的归一化。第一部分只是将数组的长度计算成名为sum的int,然后我想用这个sum除以数组v中的所有项。正常[]=v[a]/和;这句话显然是个问题,但我该怎么做 public static double[] normalized(double[] v){ double sum = 0; for(int counter = 0; counter < v.length; counter++){
public static double[] normalized(double[] v){
double sum = 0;
for(int counter = 0; counter < v.length; counter++){
sum += Math.pow(v[counter], 2);
}
sum = Math.sqrt(sum);
double[] normal;
for(int a = 0; a < v.length; a++){
normal[] = v[a]/sum;
}
return normal;
}
公共静态双[]规范化(双[]v){
双和=0;
用于(int计数器=0;计数器
有两个问题:
- 您没有初始化
(或者确实创建了一个数组来填充)normal
- 您没有指定要在
normal
double[] normal = new double[v.length];
for(int a = 0; a < v.length; a++) {
normal[a] = v[a] / sum;
}
return normal;
double[]normal=新的双精度[v.length];
对于(int a=0;a
试试这个
sum = Math.sqrt(sum);
double[] normal=new double[v.length];
for(int a = 0; a < v.length; a++){
normal[a] = v[a]/sum;
}
return normal;
sum=Math.sqrt(sum);
双精度[]正常=新双精度[v.长度];
对于(int a=0;a
我认为下面是您需要的
double sum = 0;
for(int counter = 0; counter < v.length; counter++){
sum += Math.pow(v[counter], 2);
}
sum = Math.sqrt(sum);
double[] normal=new double[v.length];
for(int a = 0; a < v.length; a++){
normal[a] = v[a]/sum;
}
return normal;
double sum=0;
用于(int计数器=0;计数器
您只需像这样为法线数组指定索引,并确保初始化法线:
double[] normal = new double[v.length];
for(int a = 0; a < v.length; a++)
{
normal[a] = v[a]/sum;
}
double[]normal=新的双精度[v.length];
对于(int a=0;a
假设你的总数是正确的。我相信这应该是可行的。Java 8中的一行程序:
double[] normal = DoubleStream.of(v).map(p->p/sum).toArray();
谢谢你的快速回答,非常有效:)@Jon Skeet任何带有Java或C#标记的东西都是你的食物。男孩!!(赞美)你怎么这么好?比如你编程多久了?@SwaroopNagendra Jon、Java和c#是同义词。@Arpit算了吧。乔恩不回答。可能在我38岁(20年后)时,我将拥有596K个销售代表:P@SwaroopNagendra:嗯,我已经编程30年了。。。但这有点无关紧要:)谢谢你,这正是我需要的!如果你愿意,你可以接受它作为你的答案,哈哈。这还不够,因为
normal
目前还没有初始化。考虑到所有其他答案都修正了这一点,我不确定为什么这个不完整的答案目前获得了最多的赞成票……这个答案是错误的。normal为空。您需要先初始化它。@arbit:它甚至不是空的-它是一个未初始化的局部变量。这将无法编译。@JonSkeet哦,是的!愚蠢的错误。我确实是未初始化的引用。:)