/** * Constructs a matrix with the given shape, each cell initialized with the given value. */ public ObjectMatrix1D make(int size, Object initialValue) { return make(size).assign(initialValue); } /**
/** * Constructs a matrix with the given shape, each cell initialized with the given value. */ public ObjectMatrix1D make(int size, Object initialValue) { return make(size).assign(initialValue); } /**
/** * Constructs and returns a deep copy of the receiver. * <p> * <b>Note that the returned matrix is an independent deep copy.</b> * The returned matrix is not backed by this matrix, so changes in the returned matrix are not reflected in this matrix, and vice-versa. * * @return a deep copy of the receiver. */ public ObjectMatrix1D copy() { ObjectMatrix1D copy = like(); copy.assign(this); return copy; } /**
/** * Constructs and returns a deep copy of the receiver. * <p> * <b>Note that the returned matrix is an independent deep copy.</b> * The returned matrix is not backed by this matrix, so changes in the returned matrix are not reflected in this matrix, and vice-versa. * * @return a deep copy of the receiver. */ public ObjectMatrix1D copy() { ObjectMatrix1D copy = like(); copy.assign(this); return copy; } /**
/** * Sets all cells to the state specified by <tt>values</tt>. * <tt>values</tt> is required to have the same number of cells as the receiver. * <p> * The values are copied. So subsequent changes in <tt>values</tt> are not reflected in the matrix, and vice-versa. * * @param values the values to be filled into the cells. * @return <tt>this</tt> (for convenience only). * @throws IllegalArgumentException if <tt>values.length != size()</tt>. */ public ObjectMatrix1D assign(Object[] values) { if (isNoView) { if (values.length != size) throw new IllegalArgumentException("Must have same number of cells: length="+values.length+"size()="+size()); System.arraycopy(values, 0, this.elements, 0, values.length); } else { super.assign(values); } return this; } /**
/** * Sets all cells to the state specified by <tt>values</tt>. * <tt>values</tt> is required to have the same number of cells as the receiver. * <p> * The values are copied. So subsequent changes in <tt>values</tt> are not reflected in the matrix, and vice-versa. * * @param values the values to be filled into the cells. * @return <tt>this</tt> (for convenience only). * @throws IllegalArgumentException if <tt>values.length != size()</tt>. */ public ObjectMatrix1D assign(Object[] values) { if (isNoView) { if (values.length != size) throw new IllegalArgumentException("Must have same number of cells: length="+values.length+"size()="+size()); System.arraycopy(values, 0, this.elements, 0, values.length); } else { super.assign(values); } return this; } /**
/** C = A||A||..||A; Constructs a new matrix which is concatenated <tt>repeat</tt> times. Example: <pre> 0 1 repeat(3) --> 0 1 0 1 0 1 </pre> */ public ObjectMatrix1D repeat(ObjectMatrix1D A, int repeat) { int size = A.size(); ObjectMatrix1D matrix = make(repeat * size); for (int i=repeat; --i >= 0; ) { matrix.viewPart(size*i,size).assign(A); } return matrix; } /**
/** C = A||A||..||A; Constructs a new matrix which is concatenated <tt>repeat</tt> times. Example: <pre> 0 1 repeat(3) --> 0 1 0 1 0 1 </pre> */ public ObjectMatrix1D repeat(ObjectMatrix1D A, int repeat) { int size = A.size(); ObjectMatrix1D matrix = make(repeat * size); for (int i=repeat; --i >= 0; ) { matrix.viewPart(size*i,size).assign(A); } return matrix; } /**
/** * Returns a string representation of the given matrix. * @param matrix the matrix to convert. */ public String toString(ObjectMatrix1D matrix) { ObjectMatrix2D easy = matrix.like2D(1,matrix.size()); easy.viewRow(0).assign(matrix); return toString(easy); } /**
/** C = A||B; Constructs a new matrix which is the concatenation of two other matrices. Example: <tt>0 1</tt> append <tt>3 4</tt> --> <tt>0 1 3 4</tt>. */ public ObjectMatrix1D append(ObjectMatrix1D A, ObjectMatrix1D B) { // concatenate ObjectMatrix1D matrix = make(A.size()+B.size()); matrix.viewPart(0,A.size()).assign(A); matrix.viewPart(A.size(),B.size()).assign(B); return matrix; } /**
/** C = A||B; Constructs a new matrix which is the concatenation of two other matrices. Example: <tt>0 1</tt> append <tt>3 4</tt> --> <tt>0 1 3 4</tt>. */ public ObjectMatrix1D append(ObjectMatrix1D A, ObjectMatrix1D B) { // concatenate ObjectMatrix1D matrix = make(A.size()+B.size()); matrix.viewPart(0,A.size()).assign(A); matrix.viewPart(A.size(),B.size()).assign(B); return matrix; } /**
/** * Returns a string representation of the given matrix. * @param matrix the matrix to convert. */ public String toString(ObjectMatrix1D matrix) { ObjectMatrix2D easy = matrix.like2D(1,matrix.size()); easy.viewRow(0).assign(matrix); return toString(easy); } /**
return super.assign(y,function);
return super.assign(y,function);
/** Constructs a matrix which is the concatenation of all given parts. Cells are copied. */ public ObjectMatrix1D make(ObjectMatrix1D[] parts) { if (parts.length==0) return make(0); int size = 0; for (int i=0; i < parts.length; i++) size += parts[i].size(); ObjectMatrix1D vector = make(size); size = 0; for (int i=0; i < parts.length; i++) { vector.viewPart(size,parts[i].size()).assign(parts[i]); size += parts[i].size(); } return vector; } /**
matrix.viewColumn(0).assign(properties);
matrix.viewColumn(0).assign(properties);
/** Constructs a matrix which is the concatenation of all given parts. Cells are copied. */ public ObjectMatrix1D make(ObjectMatrix1D[] parts) { if (parts.length==0) return make(0); int size = 0; for (int i=0; i < parts.length; i++) size += parts[i].size(); ObjectMatrix1D vector = make(size); size = 0; for (int i=0; i < parts.length; i++) { vector.viewPart(size,parts[i].size()).assign(parts[i]); size += parts[i].size(); } return vector; } /**