public class IntFormatter extends AbstractFormatter
Examples:
Examples demonstrate usage on 2-d matrices. 1-d and 3-d matrices formatting works very similar.
Original matrix |
int[][] values = { |
format | Formatter.toString(matrix); | Formatter.toSourceCode(matrix); |
%G (default) |
5 x 4 matrix 3 0 -3.4 0 5.1 0 3.012346 0 16.37 0 2.5 0 -16.3 0 -0.000301 -1 1236.345679 0 7 -1.2 |
{ { 3 , 0, -3.4 , 0 }, { 5.1 , 0, 3.012346, 0 }, { 16.37 , 0, 2.5 , 0 }, { -16.3 , 0, -0.000301, -1 }, {1236.345679, 0, 7 , -1.2} }; |
%1.10G | 5 x 4 matrix 3 0 -3.4 0 5.1 0 3.0123456789 0 16.37 0 2.5 0 -16.3 0 -0.0003012346 -1 1236.3456789 0 7 -1.2 |
{ { 3 , 0, -3.4 , 0 }, { 5.1 , 0, 3.0123456789, 0 }, { 16.37 , 0, 2.5 , 0 }, { -16.3 , 0, -0.0003012346, -1 }, {1236.3456789, 0, 7 , -1.2} }; |
%f | 5 x 4 matrix 3.000000 0.000000 -3.400000 0.000000 5.100000 0.000000 3.012346 0.000000 16.370000 0.000000 2.500000 0.000000 -16.300000 0.000000 -0.000301 -1.000000 1236.345679 0.000000 7.000000 -1.200000 |
{ { 3.000000, 0.000000, -3.400000, 0.000000}, { 5.100000, 0.000000, 3.012346, 0.000000}, { 16.370000, 0.000000, 2.500000, 0.000000}, { -16.300000, 0.000000, -0.000301, -1.000000}, {1236.345679, 0.000000, 7.000000, -1.200000} }; |
%1.2f | 5 x 4 matrix 3.00 0.00 -3.40 0.00 5.10 0.00 3.01 0.00 16.37 0.00 2.50 0.00 -16.30 0.00 -0.00 -1.00 1236.35 0.00 7.00 -1.20 |
{ { 3.00, 0.00, -3.40, 0.00}, { 5.10, 0.00, 3.01, 0.00}, { 16.37, 0.00, 2.50, 0.00}, { -16.30, 0.00, -0.00, -1.00}, {1236.35, 0.00, 7.00, -1.20} }; |
%0.2e | 5 x 4 matrix 3.00e+000 0.00e+000 -3.40e+000 0.00e+000 5.10e+000 0.00e+000 3.01e+000 0.00e+000 1.64e+001 0.00e+000 2.50e+000 0.00e+000 -1.63e+001 0.00e+000 -3.01e-004 -1.00e+000 1.24e+003 0.00e+000 7.00e+000 -1.20e+000 |
{ { 3.00e+000, 0.00e+000, -3.40e+000, 0.00e+000}, { 5.10e+000, 0.00e+000, 3.01e+000, 0.00e+000}, { 1.64e+001, 0.00e+000, 2.50e+000, 0.00e+000}, {-1.63e+001, 0.00e+000, -3.01e-004, -1.00e+000}, { 1.24e+003, 0.00e+000, 7.00e+000, -1.20e+000} }; |
null | 5 x 4 matrix 3.0 0.0 -3.4 0.0 5.1 0.0 3.0123456789 0.0 16.37 0.0 2.5 0.0 -16.3 0.0 -3.012345678E-4 -1.0 1236.3456789 0.0 7.0 -1.2 |
{ { 3.0 , 0.0, -3.4 , 0.0}, { 5.1 , 0.0, 3.0123456789 , 0.0}, { 16.37 , 0.0, 2.5 , 0.0}, { -16.3 , 0.0, -3.012345678E-4, -1.0}, {1236.3456789, 0.0, 7.0 , -1.2} }; |
Here are some more elaborate examples, adding labels for axes, rows, columns, title and some statistical aggregations.
int[][] values = { |
CPU performance over time [nops/sec] | Year | 1996 1997 1998 1999 | Mean RMS 25% Q. Median 75% Q. StdDev Min Max --------------------------------------------------------------------------------------- C PowerBar | 5 10 20 40 | 18.75 23.05 8.75 15 25 15.48 5 40 P Benzol | 7 8 6 7 | 7 7.04 6.75 7 7.25 0.82 6 8 U Mercedes | 12 10 20 19 | 15.25 15.85 11.5 15.5 19.25 4.99 10 20 Sparcling | 3 1 5 6 | 3.75 4.21 2.5 4 5.25 2.22 1 6 --------------------------------------------------------------------------------------- Mean | 6.75 7.25 12.75 18 | RMS | 7.53 8.14 14.67 22.62 | 25% Q. | 4.5 6.25 5.75 6.75 | Median | 6 9 13 13 | 75% Q. | 8.25 10 20 24.25 | StdDev | 3.86 4.27 8.38 15.81 | Min | 3 1 5 6 | Max | 12 10 20 19 | |
same as above, but now without aggregations aggr=null; |
CPU performance over time [nops/sec] | Year | 1996 1997 1998 1999 --------------------------------- C PowerBar | 5 10 20 40 P Benzol | 7 8 6 7 U Mercedes | 12 10 20 19 Sparcling | 3 1 5 6 |
same as above, but now without rows labeled |
CPU performance over time [nops/sec] Year 1996 1997 1998 1999 ------------------- 5 10 20 40 7 8 6 7 12 10 20 19 3 1 5 6 |
A column can be broader than specified by the parameter minColumnWidth (because a cell may not fit into that width) but a column is never smaller than minColumnWidth. Normally one does not need to specify minColumnWidth (default is 1). This parameter is only interesting when wanting to print two distinct matrices such that both matrices have the same column width, for example, to make it easier to see which column of matrix A corresponds to which column of matrix B.
Implementation:
Note that this class is by no means ment to be used for high performance I/O (serialization is much quicker). It is ment to produce well human readable output.
Analyzes the entire matrix before producing output. Each cell is converted to
a String as indicated by the given C-like format string. If null is
passed as format string, Int
is used instead,
yielding full precision.
Next, leading and trailing whitespaces are removed. For each column the maximum number of characters before and after the decimal point is determined. (No problem if decimal points are missing). Each cell is then padded with leading and trailing blanks, as necessary to achieve decimal point aligned, left justified formatting.
CENTER, DECIMAL, DEFAULT_COLUMN_SEPARATOR, DEFAULT_MIN_COLUMN_WIDTH, DEFAULT_ROW_SEPARATOR, DEFAULT_SLICE_SEPARATOR, LEFT, RIGHT
Constructor and Description |
---|
IntFormatter()
Constructs and returns a matrix formatter with format "%G".
|
IntFormatter(String format)
Constructs and returns a matrix formatter.
|
Modifier and Type | Method and Description |
---|---|
String[][] |
format(IntMatrix2D matrix)
Returns a string representations of all cells; no alignment considered.
|
String |
toSourceCode(IntMatrix1D matrix)
Returns a string s such that Object[] m = s is a legal
Java statement.
|
String |
toSourceCode(IntMatrix2D matrix)
Returns a string s such that Object[] m = s is a legal
Java statement.
|
String |
toSourceCode(IntMatrix3D matrix)
Returns a string s such that Object[] m = s is a legal
Java statement.
|
String |
toString(IntMatrix1D matrix)
Returns a string representation of the given matrix.
|
String |
toString(IntMatrix2D matrix)
Returns a string representation of the given matrix.
|
String |
toString(IntMatrix3D matrix)
Returns a string representation of the given matrix.
|
setAlignment, setColumnSeparator, setFormat, setMinColumnWidth, setPrintShape, setRowSeparator, setSliceSeparator, shape, shape, shape
clone
public IntFormatter()
public IntFormatter(String format)
format
- the given format used to convert a single cell value.public String[][] format(IntMatrix2D matrix)
public String toSourceCode(IntMatrix1D matrix)
matrix
- the matrix to format.public String toSourceCode(IntMatrix2D matrix)
matrix
- the matrix to format.public String toSourceCode(IntMatrix3D matrix)
matrix
- the matrix to format.public String toString(IntMatrix1D matrix)
matrix
- the matrix to convert.public String toString(IntMatrix2D matrix)
matrix
- the matrix to convert.public String toString(IntMatrix3D matrix)
matrix
- the matrix to convert.Jump to the Parallel Colt Homepage