Example usage for org.apache.commons.math3.linear ArrayRealVector getDimension

List of usage examples for org.apache.commons.math3.linear ArrayRealVector getDimension

Introduction

In this page you can find the example usage for org.apache.commons.math3.linear ArrayRealVector getDimension.

Prototype

@Override
public int getDimension() 

Source Link

Usage

From source file:ImageProc.java

public static float[][] colormapJet(int nClass) {
    int n;/*  w w  w  .  java  2 s .co  m*/
    n = (int) Math.ceil((float) nClass / 4);
    ArrayRealVector u, r, g, b;
    RealVector R, G, B;

    u = new ArrayRealVector(3 * n - 1);
    for (int i = 0; i < n; i++) {
        u.setEntry(i, (i + 1.0) / n);
        u.setEntry(u.getDimension() - i - 1, (i + 1.0) / n);
    }
    u.setSubVector(n, new ArrayRealVector(n, 1));

    g = new ArrayRealVector(u.getDimension());

    float m;
    m = (float) Math.ceil((float) n / 2);
    if (nClass % 4 == 1)
        m = m - 1;

    for (int i = 0; i < g.getDimension(); i++) {
        g.setEntry(i, (i + 1 + m));
    }

    r = g.add(new ArrayRealVector(g.getDimension(), n));
    b = g.subtract(new ArrayRealVector(g.getDimension(), n));

    R = new ArrayRealVector();
    G = new ArrayRealVector();
    B = new ArrayRealVector();

    for (int i = 0; i < r.getDimension(); i++) {
        if (r.getEntry(i) <= nClass)
            R = R.append(r.getEntry(i));
    }

    for (int i = 0; i < g.getDimension(); i++) {
        if (g.getEntry(i) <= nClass)
            G = G.append(g.getEntry(i));
    }

    for (int i = 0; i < b.getDimension(); i++) {
        if (b.getEntry(i) >= 1)
            B = B.append(b.getEntry(i));
    }

    float[][] J = new float[nClass][3];
    int index;
    for (int i = 0; i < R.getDimension(); i++) {
        index = (int) R.getEntry(i);
        J[index - 1][0] = (float) u.getEntry(i);
    }

    for (int i = 0; i < G.getDimension(); i++) {
        index = (int) G.getEntry(i);
        J[index - 1][1] = (float) u.getEntry(i);
    }

    for (int i = u.getDimension() - B.getDimension(), j = 0; i < u.getDimension(); i++, j++) {
        index = (int) B.getEntry(j);
        J[index - 1][2] = (float) u.getEntry(i);
    }

    /*
    System.out.println("\nRGB Matrix:");
    for(int i=0;i<nClass;i++){
    for(int j=0;j<3;j++){
        System.out.print(J[i][j]+"\t");
    }
    System.out.println();
    }
    */
    return J;
}

From source file:gamlss.utilities.MatrixFunctions.java

/**
* Calculate sqrt of the the vector entries.
* @param v - vector/*from   w w  w  .ja  v  a  2s. c o  m*/
* @return sqrt(vector)
*/
public static ArrayRealVector sqrtVec(final ArrayRealVector v) {
    int size = v.getDimension();
    double[] tempArr = new double[size];
    for (int i = 0; i < size; i++) {
        tempArr[i] = FastMath.sqrt(v.getEntry(i));
    }
    return new ArrayRealVector(tempArr, false);
}

From source file:gamlss.utilities.MatrixFunctions.java

/**
* Calculate log of the the vector entries.
* @param v - vector//  w ww . j  av  a 2s .  co m
* @return log(vector)
*/
public static ArrayRealVector logVec(final ArrayRealVector v) {
    int size = v.getDimension();
    double[] tempArr = new double[size];
    for (int i = 0; i < size; i++) {
        tempArr[i] = FastMath.log(v.getEntry(i));
    }
    return new ArrayRealVector(tempArr, false);
}

From source file:gamlss.utilities.MatrixFunctions.java

public static ArrayRealVector multVvsD(ArrayRealVector v, double d) {
    int size = v.getDimension();
    double[] out = new double[size];
    for (int i = 0; i < size; i++) {
        out[i] = v.getEntry(i) * d;/*from  www .j a  va2  s  . c  o m*/
    }
    return new ArrayRealVector(out, false);
}

From source file:gamlss.utilities.MatrixFunctions.java

/**
 * Prints vector values in the console.//from   w w  w .  j av a 2s  .  c  o m
 * @param v - vector to print
 */
public static void vectorPrint(final ArrayRealVector v) {
    for (int i = 0; i < v.getDimension(); i++) {
        System.out.println(v.getEntry(i));
    }
}

From source file:gamlss.utilities.MatrixFunctions.java

public static ArrayRealVector addV(ArrayRealVector v1, ArrayRealVector v2) {
    int size = v1.getDimension();
    double[] out = new double[size];
    for (int i = 0; i < size; i++) {
        out[i] = v1.getEntry(i) + v2.getEntry(i);
    }//from   ww w  .jav a  2  s  . co  m
    return new ArrayRealVector(out, false);
}

From source file:gamlss.utilities.MatrixFunctions.java

/**
*  Calculates inverse of vector values.//from  www. j a v  a  2s  .c  o  m
* @param v - vector
* @return 1/v
*/
public static ArrayRealVector inverse(final ArrayRealVector v) {
    double[] tempArr = new double[v.getDimension()];
    for (int i = 0; i < tempArr.length; i++) {
        tempArr[i] = 1 / v.getEntry(i);
    }
    return new ArrayRealVector(tempArr, false);
}

From source file:gamlss.utilities.MatrixFunctions.java

/**
 * if the length of the return vector is zero,
 *  then the diff was not completed properly.
 *  @param data - vector/*from  w w  w.j  a va2  s  .  com*/
 *  @return - vector
 */
private static ArrayRealVector getDiff(final ArrayRealVector data) {
    double[] newdata = new double[data.getDimension() - 1];

    for (int i = 0; i < newdata.length; i++) {
        newdata[i] = data.getEntry(i + 1) - data.getEntry(i);
    }
    return new ArrayRealVector(newdata, false);
}

From source file:gamlss.utilities.MatrixFunctions.java

/**
* Calculates a difference of two vectors (v1 - v2).
* @param v1 - first vector/*from   w ww  . j a  v  a  2  s .  c  om*/
* @param v2 - second vector
* @return vector (v1 - v2)
*/
public static ArrayRealVector vecSub(final ArrayRealVector v1, final ArrayRealVector v2) {
    int size = v1.getDimension();
    double[] tempArr = new double[size];
    for (int i = 0; i < size; i++) {
        tempArr[i] = v1.getEntry(i) - v2.getEntry(i);
    }
    return new ArrayRealVector(tempArr, false);
}

From source file:gamlss.utilities.MatrixFunctions.java

/**
* Calculates the sum of two vectors (v1+v2).
* @param v1 - first vector/*ww  w . j a  v  a 2 s.  co  m*/
* @param v2 - second vector
* @return vector (v1+v2)
*/
public static ArrayRealVector vecSum(final ArrayRealVector v1, final ArrayRealVector v2) {
    int size = v1.getDimension();
    double[] tempArr = new double[size];
    for (int i = 0; i < size; i++) {
        tempArr[i] = v1.getEntry(i) + v2.getEntry(i);
    }
    return new ArrayRealVector(tempArr, false);
}