如何在使用UJMP库时从文件导入/导出Matrix?

时间:2014-06-02 14:25:37

标签: java matrix import export ujmp

我正在尝试使用UJMP库。我创建了一个矩阵,我想将其导出为txt文件,然后再将其作为基本矩阵导入。 我尝试了以下代码,但它不起作用:

Matrix m = MatrixFactory.dense(ValueType.INT, new long[]{(long)100,(long)100});
for(int i = 0; i< 100; i++){
        for(int j = 0; j< 100;j++){
            m.setAsInt((int) (Math.random() *3),new long[]{i,j});
        }
}
try {
        m.exportToFile(FileFormat.TXT,"test.txt",null); //this works. My file contains the matrix
} catch (MatrixException e) {
        e.printStackTrace();
} catch (IOException e) {
        e.printStackTrace();
}
Matrix n = null;
try {
        n =ImportMatrix.fromFile(FileFormat.TXT,new File("test.txt"),null); //this doesn't work. The matrix has a size of 1*1 and contains the content of the previous matrix as a single string.
} catch (MatrixException e) {
        e.printStackTrace();
} catch (IOException e) {
        e.printStackTrace();
}

System.out.println(n.getSize()[0]+" "+n.getSize()[1]); // I get 1 1;

那么我应该怎么做才能将我的原始矩阵作为100 * 100矩阵?

提前感谢您的回复,对不起我的英语。

2 个答案:

答案 0 :(得分:0)

我不确定,但我认为您在文件中使用null作为分隔符:

m.exportToFile(FileFormat.TXT,"test.txt",null);

也许你应该使用:

m.exportToFile(FileFormat.TXT,"test.txt",";");

答案 1 :(得分:0)

实际上您可以使用方法

将矩阵导出到文件
exportTo()

并选择目的地

例如:

m.exportTo().file(file)

然后选择导出格式

例如:

m.exportTo().file(file).asMatlabScript("myMat");