java - 使用类似 Matlab 的风格在 ejml 中初始化 vector

标签 java matlab ejml

在Mablab/Octave中,我可以创建一个具有范围样式的新 vector ,例如:
v = [1:10];

但是,当我将它放入 ejml 方程(Java)中时,它不起作用:
eq.process("v = [1:10]");

它仅适用于显式初始化,例如:
eq.process("v = [1 2 ]");

任何人都可以做到这一点,或者建议我一个解决方法吗? 谢谢。

最佳答案

要使用矩阵和 vector ,您可以使用普通的 java 运算符和循环,这里是一个解决线性系统的示例,添加元素,然后设置范围 vector 列和行

希望对你有帮助

import org.ejml.factory.SingularMatrixException;
import org.ejml.simple.SimpleMatrix;

/**
 * Created by anquegi on 15/05/15.
 */
public class TestEjml {



    public static void main(String args[]){

        //Solving a system
        SimpleMatrix A = new SimpleMatrix(2,2);
        SimpleMatrix b = new SimpleMatrix(2,1);
        SimpleMatrix x;


        // Can assign values the usual way

        A.set(0,0,1);
        A.set(0,1,4);
        A.set(1,0,1);
        A.set(1,1,1);

        b.set(0,0,28);
        b.set(1,0,10);


        try {
            x = A.solve(b);
            System.out.println(x);
        } catch ( SingularMatrixException e ) {
            e.printStackTrace();
        }

        // So to do a Range
        SimpleMatrix my_range_v = new SimpleMatrix(10,1);

        for (int i = 0; i < my_range_v.numRows(); i++) {
            my_range_v.set(i,i); // you can set also wit set(row,col,value)
        }

        // So to do a Range
        SimpleMatrix my_range_h = new SimpleMatrix(1,10);



        for (int i = 0; i < my_range_h.numCols(); i++) {
            my_range_h.set(i,i); // you can set also wit set(row,col,value)
        }

        System.out.println(my_range_v);
        System.out.println(my_range_h);



    }

}

结果:

输入数字:2

[info] Running ejml.TestEjml 
Type = dense real , numRows = 2 , numCols = 1
 4,000  
 6,000  

Type = dense real , numRows = 10 , numCols = 1
 0,000  
 1,000  
 2,000  
 3,000  
 4,000  
 5,000  
 6,000  
 7,000  
 8,000  
 9,000  

Type = dense real , numRows = 1 , numCols = 10
 0,000   1,000   2,000   3,000   4,000   5,000   6,000   7,000   8,000   9,000  

[success] Total time: 2 s, completed 15/05/2015 12:16:20

关于java - 使用类似 Matlab 的风格在 ejml 中初始化 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254901/

相关文章:

java html解析器不读取所有页面

string - 在 Matlab 中查找字符串中的特定字符

matlab - octave/matlab - 将字符串转换为唯一单词矩阵

matlab - matlab 中的 CUDA 错误(所有支持 CUDA 的设备都忙)

java - 从ejml中的N x M矩阵减去1 x M矩阵

java - 如何在 apache httpclient 上强制使用 IPv4? ( java )

java - 在多线程环境中摆脱标志/枚举的设计模式

java - 如何根据 Java 中给定的一组比较器对作为字符串的 TreeMap 键进行排序

java - ejml 库使用 mult() 将矩阵乘以标量

Java:使用 EJML 的矩阵逆没有按预期工作