Write float arrays to a text file: Difference between revisions
Content added Content deleted
(created task, added example in Python) |
m (→{{header|Python}}: added example) |
||
Line 25: | Line 25: | ||
for a, b in itertools.izip(x, y): |
for a, b in itertools.izip(x, y): |
||
f.write("%.*g\t%.*g\n" % (xprecision, a, yprecision, b)) |
f.write("%.*g\t%.*g\n" % (xprecision, a, yprecision, b)) |
||
===Example=== |
|||
>>> import math |
|||
>>> x = [1, 2, 3, 1e11] |
|||
>>> y = map(math.sqrt, x) |
|||
>>> y |
|||
[1.0, 1.4142135623730951, 1.7320508075688772, 316227.76601683791] |
|||
>>> writedat("sqrt.dat", x, y) |
|||
>>> # check |
|||
... |
|||
>>> for line in open('sqrt.dat'): |
|||
... print line, |
|||
... |
|||
1 1 |
|||
2 1.4142 |
|||
3 1.7321 |
|||
1e+011 3.1623e+005 |
Revision as of 01:06, 24 December 2007
Write float arrays to a text file
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
Write two equal-sized numerical arrays `x' and `y' to a two-column text file named `filename'.
The first column of the file contains values from an `x'-array with a given `xprecision', the second -- values from `y'-array with `yprecision'.
For example, considering:
x = {1, 2, 3, 1e11}; y = {1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791}; /* sqrt(x) */ xprecision = 3; yprecision = 5;
The file is:
1 1 2 1.4142 3 1.7321 1e+011 3.1623e+005
This task is intended as a subtask for Measure relative performance of sorting algorithms implementations.
Python
Interpreter: Python 2.6
import itertools def writedat(filename, x, y, xprecision=3, yprecision=5): with open(filename,'w') as f: for a, b in itertools.izip(x, y): f.write("%.*g\t%.*g\n" % (xprecision, a, yprecision, b))
Example
>>> import math >>> x = [1, 2, 3, 1e11] >>> y = map(math.sqrt, x) >>> y [1.0, 1.4142135623730951, 1.7320508075688772, 316227.76601683791] >>> writedat("sqrt.dat", x, y) >>> # check ... >>> for line in open('sqrt.dat'): ... print line, ... 1 1 2 1.4142 3 1.7321 1e+011 3.1623e+005