简体   繁体   English

八度到Java-InitializeThetas函数

[英]Octave to Java - InitializeThetas Function

Hi guys I´m new in java. 嗨,大家好,我是Java新手。 I'm trying to convert an octave function in to Java(using JBlas) but I´m not sure how to do this line: 我正在尝试将八度函数转换为Java(使用JBlas),但是我不确定如何执行此行:

OCTAVE: Thetas{i} = rand(sizes(i+1), sizes(i) + 1)*2*EPSILON-EPSILON; 

My code in Java: 我的Java代码:

public class InitializeThetas {

    public static DoubleMatrix InitializeThetas(DoubleMatrix sizes, double epsilon)
    {
       int L= sizes.length;
       epsilon = 0.03;
       DoubleMatrix Thetas = new DoubleMatrix(new double[]{});
       Random r = new Random();

        for (int i = 1; i <= L - 1; i++) 
        {
            //Thetas{i} = rand(sizes(i+1), sizes(i) + 1)*2*EPSILON-EPSILON;

            Thetas.data[i]= r.nextInt() * 2 * epsilon - epsilon; 
        }
       return Thetas;
    } 
}

Is this close to what you want? 这接近您想要的吗?

public class InitializeThetas {

    public static Collection<DoubleMatrix> InitializeThetas(DoubleMatrix sizes, double epsilon)
    {
        int L= sizes.length;
        epsilon = 0.03;
        Collection<DoubleMatrix> Thetas = new ArrayList<DoubleMatrix>();

        for (int i = 0; i < L - 1; i++)
        {
            Thetas.add(DoubleMatrix.rand(Double.valueOf(sizes.get(i + 1)).intValue(), Double.valueOf(sizes.get(i)).intValue() + 1).mul(2).mul(epsilon).sub(epsilon));
        }
        return Thetas;
    }

    public static void main(String[] args) {
        DoubleMatrix soze = new DoubleMatrix(10);
        for(int i = 0;i<10;i++){
            soze.put(i,i+1);
        }
        System.out.println(InitializeThetas(soze,1.1));
    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM