【问题标题】:taken input from hard disk file in a matrix in Java从Java中的矩阵中的硬盘文件中获取输入
【发布时间】:2018-05-05 13:43:20
【问题描述】:
import Jama.Matrix;

public class T5 {
public static void main(String args[]){
    Matrix C=new Matrix(new double[][]{{1,0,0,},{0,1,0},{0,0,1}});
    Scanner x;
    try {
        x=new Scanner(new File("D://out.txt"));
        for (int i = 0; i < 100; i++) {
            double a1= x.nextDouble();
            Double b1=x.nextDouble();
            double c1=x.nextDouble();
            Matrix data1 = new Matrix(new double[][]{{a1, b1, c1}});
            double a = data1.get(i, 0);
            double b = data1.get(i, 1);
            double c = data1.get(i, 2);
            double[][] val = {{a}, {b}, {c}};
            Matrix A_new = new Matrix(val);
            Matrix newobser = C.times(A_new);
            newobser.print(9, 6);
        }
    }
    catch (Exception e){
        System.out.println(e);
    }
}
}

这段代码有问题。在此代码中,有一个矩阵data1,它具有三列和 1 行,随着时间的推移而迭代。我在硬盘名称out.txt 中有文件。该文件包含100 行和3 列。我尝试在变量a1 中取出out.txt 的第1 列,在变量b1 中取出out.txt 的第2 列,在out.txt 的第3 列在变量c1中。然后在Matrix data1中输入a1,b1,c1。这里我使用JAMA矩阵,这是一个构建矩阵包。 Getprinttimes(use for matrix multiplication) 是 JAMA 矩阵包的函数。我如何才能继续从外部文件中获取输入?我的过程不起作用。

【问题讨论】:

  • 您文件中的内容是什么样的?
  • 3.575008 -3.331063 2.346296 3.576784 -3.329287 2.351792 3.578560 -3.327511 2.357288 3.580336 -3.325735 2.362784 3.582112 -3.323959 2.368280 ......等等。它按行和列排列。由于编辑功能有限,我无法在此处显示。

标签: java matrix bufferedreader jama


【解决方案1】:

在逐行读取文件的同时,尝试将文件内容映射成一个对象(代表每一行);并且每条记录用制表符或逗号分隔。

然后遍历包含文件内容的所有对象的列表,并将它们添加到矩阵中。

【讨论】:

  • 我该怎么做?能写下代码解释一下吗?
猜你喜欢
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多