package org.nd4j.examples;
import org.nd4j.linalg.api.buffer.DataBuffer;
import org.nd4j.linalg.api.ndarray.INDArray;
import org.nd4j.linalg.factory.Nd4j;
/**
* --- Nd4j Example 10: Element Wise Operation ---
*
* In this example, we'll see ways to manipulate INDArray
*
* Created by cvn on 9/6/14.
*/
public class Nd4jEx10_ElementWiseOperation {
public static void main(String[] args) {
//Nd4j.dtype = DataBuffer.DOUBLE;
INDArray nd1 = Nd4j.create(new double[]{1,2,3,4,5,6},new int[]{2,3});
System.out.println("nd1:\n"+nd1);
//create nd-array variable ndv to be able to print result of nondestructive operations. add scalar to matrix and assign ndv the sum.
INDArray ndv = nd1.add(1);
System.out.println("nd1.add(1):\n"+ndv);
ndv = nd1.mul(5);
System.out.println("nd1.mul(5):\n"+ndv);
ndv = nd1.sub(3);
System.out.println("nd1.sub(3):\n"+ndv);
ndv = nd1.div(2);
System.out.println("nd1.div(2):\n"+ndv);
//add column vector to matrix
INDArray nd2 = Nd4j.create(new double[]{10,20},new int[]{2,1}); //vector as column
System.out.println("nd2:\n"+nd2);
ndv = nd1.addColumnVector(nd2);
System.out.println("nd1.addColumnVector(nd2):\n"+ndv);
// add row vector to matrix
INDArray nd3 = Nd4j.create(new double[]{30,40,50},new int[]{1, 3}); //vector as row
System.out.println("nd3:\n"+nd3);
ndv = nd1.addRowVector(nd3);
System.out.println("nd1.addRowVector(nd3):\n"+ndv);
//multiply two matrices of equal dimensions elementwise.
INDArray nd4 = Nd4j.create(new double[]{1,2,1,2,1,2},new int[]{2,3});
System.out.println("nd4:\n"+nd4);
ndv = nd1.mul(nd4);
System.out.println("nd1.mul(nd4):\n"+ndv);
}
}