Java 在特定列和行的OjAlgo中的Primitive64Store中插入Access2D元素

Java 在特定列和行的OjAlgo中的Primitive64Store中插入Access2D元素,java,ojalgo,Java,Ojalgo,是否可以在OjAlgo的Primitive64存储中插入Access2D元素 Access2D<Double> data = Access2D.wrap(mu.toRawCopy2D()); Primitive64Store B = Primitive64Store.FACTORY.make(rows * m, columns * n); Access2D data=Access2D.wrap(mu.toRawCopy2D()); Primitive64Store

是否可以在OjAlgo的Primitive64存储中插入Access2D元素

    Access2D<Double> data = Access2D.wrap(mu.toRawCopy2D());
    Primitive64Store B = Primitive64Store.FACTORY.make(rows * m, columns * n);
Access2D data=Access2D.wrap(mu.toRawCopy2D());
Primitive64Store B=Primitive64Store.FACTORY.make(行*m,列*n);
我想在B中的特定起始行和起始列插入数据

暂时。我已执行如下程序:

public class Repmat {

    static public MatrixStore<Double> repmat(MatrixStore<Double> mu, int m, int n) {
        long rows = mu.countRows();
        long columns = mu.countColumns();
        double[][] data = mu.toRawCopy2D();
        Primitive64Store B = Primitive64Store.FACTORY.make(rows * m, columns * n);
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                for(int k = 0; k < rows; k++) {
                    B.fillRow(i * rows + k, j * columns, Access1D.wrap(data[k])); // Get row from data and place it into B
                }
            }
        }
        return B.get();
    }
} 
static public MatrixStore<Double> repmat(MatrixStore<Double> mu, int m, int n) {

    LogicalBuilder<Double> builder = mu.logical();

    for (int i = 1; i < m; i++) {
        builder.below(mu);
    }

    MatrixStore<Double> firstCol = builder.get();

    for (int j = 1; j < n; j++) {
        builder.right(firstCol);
    }

    return builder.get();
}
公共类Repmat{
静态公共矩阵存储repmat(矩阵存储mu、int m、int n){
长行=mu.countRows();
长列=mu.countColumns();
double[]data=mu.toRawCopy2D();
Primitive64Store B=Primitive64Store.FACTORY.make(行*m,列*n);
for(int i=0;i

但这一定是一种更好的方法吗?

也许是这样的:

public class Repmat {

    static public MatrixStore<Double> repmat(MatrixStore<Double> mu, int m, int n) {
        long rows = mu.countRows();
        long columns = mu.countColumns();
        double[][] data = mu.toRawCopy2D();
        Primitive64Store B = Primitive64Store.FACTORY.make(rows * m, columns * n);
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                for(int k = 0; k < rows; k++) {
                    B.fillRow(i * rows + k, j * columns, Access1D.wrap(data[k])); // Get row from data and place it into B
                }
            }
        }
        return B.get();
    }
} 
static public MatrixStore<Double> repmat(MatrixStore<Double> mu, int m, int n) {

    LogicalBuilder<Double> builder = mu.logical();

    for (int i = 1; i < m; i++) {
        builder.below(mu);
    }

    MatrixStore<Double> firstCol = builder.get();

    for (int j = 1; j < n; j++) {
        builder.right(firstCol);
    }

    return builder.get();
}
静态公共矩阵存储repmat(矩阵存储mu,int m,int n){
LogicalBuilder=mu.logical();
对于(int i=1;i