2
$\begingroup$

I'm working on a project of Nuclear physics and I'm passing results of a simulation program to mathematica via a txt file. I then read the values I need to read and plot them. The problem is that sometimes those values don't appear on the file, and then mathematica gets an "end of file" error instead of a value when I try to find them. Everything works fine with the plot, but if I want to show the results on a table it's all messed up and filled with errors.

TL;DR

How do I remove all the errors from a list like this:

{{40.,Internal`StringToDouble[StringSplit[EndOfFile][[6]]]},     
 {45.45,Internal`StringToDouble[StringSplit[EndOfFile][[6]]]},{50.91,49.5},
 {56.36,78.9},{61.82,70.9},{67.27,32.6},{72.73,9.4},{78.18,3.9},{83.64,1.1},
 {89.09,0.2},{94.55,0.1},{100.,Internal`StringToDouble[StringSplit[EndOfFile][[6]]]}}

replacing them with zeros?

I want to get something like this:

    {{40.,0},{45.45,0},{50.91,49.5},{56.36,78.9},{61.82,70.9},{67.27,32.6},
     {72.73,9.4},{78.18,3.9},{83.64,1.1},{89.09,0.2},{94.55,0.1},{100.,0}}

Thanks and sorry for the messy question.

$\endgroup$
4
  • $\begingroup$ (at) DoubleCat: It seems as if the value 0 is misinterpreted as an EOF marker. Try writing 0.0 instead of 0 in your text file. $\endgroup$ Commented Sep 21, 2014 at 17:30
  • $\begingroup$ That is what I want to get, I don't know how to do it $\endgroup$
    – DoubleCat
    Commented Sep 21, 2014 at 17:33
  • $\begingroup$ To try it, take a small txt file, replace an exact 0 by 0.0 e.g. by hand, and then pass this file to Mathematica. Do the error messages remain? If not, then you should adapt your text generation to include just this replacement. If yes, I don't know ... $\endgroup$ Commented Sep 21, 2014 at 17:37
  • $\begingroup$ Replace[YourList, x_ /; Not@NumericQ@x :> 0, {2}] $\endgroup$ Commented Sep 21, 2014 at 17:41

1 Answer 1

0
$\begingroup$
data /. Internal`StringToDouble[__] -> 0

{{40., 0}, {45.45, 0}, {50.91, 49.5}, {56.36, 78.9}, {61.82, 70.9}, {67.27, 32.6}, {72.73, 9.4}, {78.18, 3.9}, {83.64, 1.1}, {89.09, 0.2}, {94.55, 0.1}, {100., 0}}

$\endgroup$
2
  • $\begingroup$ Thank you so much, you saved me $\endgroup$
    – DoubleCat
    Commented Sep 21, 2014 at 18:07
  • $\begingroup$ My pleasure @ 2Cat $\endgroup$
    – eldo
    Commented Sep 21, 2014 at 18:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.