//package com.nowjava;
/*
来 自*
NowJava.com
*/
public class Main {
public static void main(String[] argv) throws Exception {
double[] v = new double[] { 34.45, 35.45, 36.67, 37.78, 37.0000,
37.1234, 67.2344, 68.34534, 69.87700 };
System.out.println(java.util.Arrays.toString(normalize(v)));
}
/**
* Renormalizes the array so that its L2 norm is 1
* (up to computational errors).
*/
public static double[] normalize(double[] v) {
return (scalarMultiply(1.0 / norm(v), v));
}
/**
* Returns a comma delimited string representing the value of the array.
*/
public static String toString(double[] array) {
StringBuffer buf = new StringBuffer(array.length);
int i;
/*
来 自*
N o w J a v a . c o m - 时 代 Java
*/
for (i = 0; i < array.length - 1; i++) {
buf.append(array[i]);
buf.append(',');
}
buf.append(array[i]);
return buf.toString();
}
/**
* Returns a comma delimited string representing the value of the array.
*/
public static String toString(double[][] array) {
StringBuffer buf = new StringBuffer();
for (int k = 0; k < array.length; k++) {
buf.append(toString(array[k]));
buf.append(System.getProperty("line.separator"));
}
return buf.toString();
}
/**
* Returns a comma delimited string representing the value of the array.
*/
public static String toString(int[] array) {
StringBuffer buf = new StringBuffer(array.length);
int i;
for (i = 0; i < array.length - 1; i++) {
buf.append(array[i]);
buf.append(',');
}
buf.append(array[i]);
return buf.toString();
}
/**
* Returns a comma delimited string representing the value of the array.
*/
public static String toString(int[][] array) {
StringBuffer buf = new StringBuffer();
for (int k = 0; k < array.length; k++) {
buf.append(toString(array[k]));
buf.append(System.getProperty("line.separator"));
}
return buf.toString();
}
/**
* Multiplies every component of an array by a scalar.
*/
public static double[] scalarMultiply(double a, double[] v) {
double[] ans = new double[v.length];
for (int k = 0; k < v.length; k++) {
ans[k] = a * v[k];
}
return (ans);
}
/**
* Multiplies every component of an array by a scalar.
*/
public static double[] scalarMultiply(double a, int[] v) {
double[] ans = new double[v.length];
for (int k = 0; k < v.length; k++) {
ans[k] = v[k] * a;
}
return (ans);
}
/**
* Computes the L2 norm of an array (Euclidean norm or "length").
*/
public static double norm(double[] data) {
return (Math.sqrt(sumSquares(data)));
}
/**
* Computes the L2 norm of an array (Euclidean norm or "length").
*/
public static double norm(int[] data) {
return (Math.sqrt(sumSquares(data)));
}
/**
* Sums the squares of all components;
* also called the energy of the array.
*/
public static double sumSquares(double[] data) {
double ans = 0.0;
for (int k = 0; k < data.length; k++) {
ans += data[k] * data[k];
}
return (ans);
}
/**
* Sums the squares of all components;
* also called the energy of the array.
*/
public static double sumSquares(double[][] data) {
double ans = 0.0;
for (int k = 0; k < data.length; k++) {
for (int l = 0; l < data[k].length; l++) {
ans += data[k][l] * data[k][l];
}
}
/**代码未完, 请加载全部代码(NowJava.com).**/
本文系作者在时代Java发表,未经许可,不得转载。如有侵权,请联系nowjava@qq.com删除。