My assignment is to test which algorithm is more efficient in transposing a matrix: a Naive or Fast Sparse algorithm. I need to construct functions for reach algorithm that call from an input file, which is a sparse Matrix.
A text file called M5x5.mat looks like this.
5 5 11
0 3 297
1 0 230
1 4 291
2 0 390
2 2 250
2 3 286
2 4 330
3 2 333
3 4 464
4 0 184
4 3 347
5 and 5 represent the 5x5 matrix and 11 the number of elements. M10x10 has 50 elements and so on. The matrice is set up <row, col, value>, with the first column being 'row', second column being 'col' and the third column being 'value'.
My main problem is that I don't know how to convert a text file like this into a matrice that I can use. I wasn't taught how to in my previous classes and I think my professor assumes that we know how.
I need to know how to print out the matrice as it appears on the text and a new transposed Matrice.
My primary assignment was to measure each algorithm in efficiency. I do this by adding units every time the for loop executes.
This is the Fast Transpose algorithm in pseudocode, using the units counter as mentioned:
start of algorithm/
for (i=0; i < M.row; i++)
for (i=1; i<=M.value; i++)
for (i=1; i< M.row; i++)
startingposition[i] = startingposition[i-1] + rowterms[i-1]
/*primary transpose alg*/
for (i=1; i<= M.value; i++)
/*Mt is the transposed matrice*/
Mt[j].row = M[i].col
Mt[j].col = M[i].row
Mt[j].value = M[i].value
/end of algorithm
That's just one of the algorithms.
Summing up what I need:
1. How to call the input matrice files and implement them in the functions. Or to convert the txt file into a matrice?
2. How to print out the matrices.
3. I would like to have the pseudocode above converted into a java function complemented with the calling of the Matrice file, but if that's too much, I understand.
Any help at all would be appreciated.
This solution addresses the first and second issues listed in the posting. That is, it shows how to read in data from a file to create a matrix and it shows how to display a matrix. The entire Java program to do this is in the attached Matrix.java file.
In order to read the matrix data from a file we need to use a File object that represents the file. We create this object as follows:
File file = new File(filename);
Once we have a file object we can create a Scanner object to read all the data from the file. The ...
This solution provides and explains a Java class for reading and writing a matrix of integers.