Re: addition of 2 matrix number
On Aug 24, 8:29 pm, Bo Vance <bowman.va...@invalid.invalid> wrote:
SamuelXiao wrote:
my program is to add 2 matrix number from 2 txt file:
Scanner in1 = new Scanner(Syst=
em.in);
nner(System.in);
// user input file:
String mat1 = in1.nex=
t();
t();
but it doesn't work, anyone know how to fix it?
import java.io.Console;
import java.util.ArrayList;
import java.util.List;
public class Scratch {
public static void main(String[] args) {
Console c = System.console();
if (c == null) {
System.err.println("No console.");
System.exit(1);
}
String m1Path = c.readLine("Enter m1 path: ");
int m1Rows =
Integer.parseInt(
c.readLine("Enter m1 number of rows: "));
int m1Cols =
Integer.parseInt(
c.readLine("Enter m1 number of columns: "));
List<String> m1RowStrings =
new ArrayList<String>(m1Rows);
for (int idx = 0; idx < m1Rows; idx++) {
m1RowStrings.add(c.readLine("Enter m1 row# " + idx));
}
String m2Path = c.readLine("Enter m2 path: ");
int m2Rows =
Integer.parseInt(
c.readLine("Enter m2 number of rows: "));
int m2Cols =
Integer.parseInt(
c.readLine("Enter m2 number of columns: "));
List<String> m2RowStrings =
new ArrayList<String>(m2Rows);
for (int idx = 0; idx < m2Rows; idx++) {
m2RowStrings.add(c.readLine("Enter m2 row# " + idx));
}
StringBuilder m1Out = new StringBuilder();
m1Out.append("m1 path = " + m1Path + "\n");
m1Out.append("m1 # of rows = " + m1Rows + "\n");
m1Out.append("m1 # of columns = " + m1Cols + "\n");
for(String row : m1RowStrings) {
m1Out.append(row + "\n");
}
m1Out.append("\n");
StringBuilder m2Out = new StringBuilder();
m2Out.append("m2 path = " + m2Path + "\n");
m2Out.append("m2 # of rows = " + m2Rows + "\n");
m2Out.append("m2 # of columns = " + m2Cols + "\n");
for(String row : m2RowStrings) {
m2Out.append(row + "\n");
}
m2Out.append("\n");
System.err.print(m1Out);
System.err.print(m2Out);
}
}
I can't run your program as well, in fact, what i want the program to
do is:
e.g. the user input: matrix1.txt matrix2.txt
the program reads the data from matrix1.txt and matrix2.txt
seperately,
<test>
rows = 2
cols = 2
1 2
3 4
</test>
---this is fixed pattern
it skip the <test> rows =, needs only the number (e.g. 2), then i
assign m1.setRows(read1.nextInt()); then skip cols =, and do assign
m1.setCols(read1.nextInt), afterthat, it comes to line 4 and 5, i want
to use a for-loop to store the 4 numbers...e.g.
for(int i=0;i<m1.getRows();i++){
for(int j=0;j<m1.getCols();j++){
m1.element[i][j] =
Double.parseDouble(read1.next());
}
read1.nextLine();
}
what i find here is that the compile says m1.element[i][j] =
Double.parseDouble(read1.next());
Exception in thread "main" java.lang.NullPointerException
at lab1.main(lab1.java:119)
Java Result: 1
what is the problem? thanks