# Fourier of List

I have such a problem. I try to evaluate and plot the spectrum of large list, and this is what I get:

 list = ReadList["textfile.txt"]
ListPlot[Abs[Fourier[list]]]

Fourier::fftl: Argument
{1,0.99995,0.9998,0.99955,0.9992,0.99875,0.998201,0.997551,0.996802,0.995953,0.995004,0.993956,0.992809,0.991562,0.990216,
<<21>>,0.935897,0.932327,0.928665,0.924909,0.921061,0.917121,0.913089,0.908966,0.904752,0.900447,0.896052,0.891568,0.886995,0.882333,<<9950>>}
is not a non-empty list or rectangular array of numeric quantities. >>


So, I think this could happen because of symbols such as

 <<21>>


in the list. But I don't know how to fix this to make Fourier command work correctly.

UPD: sample of the file

 {1, 0.99995, 0.9998, 0.99955, 0.9992, 0.99875, 0.998201, 0.997551, \
0.996802, 0.995953, 0.995004, 0.993956, 0.992809, 0.991562, 0.990216, \
0.988771, 0.987227, 0.985585, 0.983844, 0.982004, 0.980067, 0.978031, \
0.975897, 0.973666, 0.971338, 0.968912, 0.96639, 0.963771, 0.961055, \
0.958244, 0.955336, 0.952334, 0.949235, 0.946042, 0.942755, 0.939373, \
0.935897, 0.932327, 0.928665, 0.924909, 0.921061, 0.917121, 0.913089, \
0.908966, 0.904752, 0.900447, 0.896052, 0.891568, 0.886995, 0.882333, \
0.877583, 0.872745, 0.867819, 0.862807, 0.857709, 0.852525, 0.847255, \
0.841901, 0.836463, 0.830941, 0.825336, 0.819648, 0.813878, 0.808028, \
0.802096, 0.796084, 0.789992, 0.783822, 0.777573, 0.771246, 0.764842, \
0.758362, 0.751806, 0.745174, 0.738469, 0.731689, 0.724836, 0.717911, \
0.710914, 0.703845, 0.696707, 0.689498, 0.682221, 0.674876, 0.667463, \
0.659983, 0.652437, 0.644827, 0.637151, 0.629412, 0.62161, 0.613746, \
0.60582, 0.597834, 0.589788, 0.581683, 0.57352, 0.5653, 0.557023, \
0.54869, 0.540302, 0.531861, 0.523366, 0.514819, 0.50622, 0.497571, \
0.488872, 0.480124, 0.471328, 0.462485, 0.453596, 0.444662, 0.435682, \
0.42666, 0.417595, 0.408487, 0.39934, 0.390152, 0.380925, 0.37166, \
0.362358, 0.353019, 0.343646, 0.334238, 0.324796, 0.315322, 0.305817, \
0.296281, 0.286715, 0.277121, 0.267499, 0.25785, 0.248175, 0.238476, \
0.228753, 0.219007, 0.209239, 0.19945, 0.189641, 0.179813, 0.169967, \
}


And

 DeleteCases[list, _Real]
{1, 1, 1, -5 - 9.18301 e, -1, -1, -1, -1}


Also

 NumericQ[list]
False


UPD2: LINK TO THE FILE http://www.filedropper.com/fourier (It's interesting that the file itself doesn't contain any numbers in scientific (with e) notation).

• Can we get a sample of this file you are importing ? – Sektor Sep 17 '15 at 19:20
• Can you be more specific about the contents of list? Is it true that And @@ (NumericQ /@ list), for instance? – Patrick Stevens Sep 17 '15 at 19:20
• It looks like your list contains non-numeric elements. Try evaluating N@list~DeleteCases~_Real to see a list of the problem elements. – Simon Woods Sep 17 '15 at 19:29
• Updated with the sample – newt Sep 17 '15 at 19:32
• DeleteCases[list] => {1, 1, 1, -5 - 9.18301 e, -1, -1, -1, -1}; NumericQ[list] => False – newt Sep 17 '15 at 19:34

## 1 Answer

I've noticed before that when importing text files into Mathematica, depending on how the text file encodes numbers, you might get odd results, such as expressions like -5 - 9.18301 e due to the file encoding the number as "-9.18301e-5", which is generally fine, but doesn't read correctly with ReadList[]. Instead, try Import[filename, "Table"].

Edit:

I downloaded the file linked in your post. Indeed, the error seems to be due entirely to a single entry that is in scientific notation: "-9.18301e-05". Import[filename, "Table"] works fine, as does Abs@Fourier[Flatten@Import[filename, "Table"]] (note that the Flatten is due to "Table" importing data as a matrix).

As noted by Simon Woods, Abs@Fourier[ReadList[filename, Number]] also works fine.

• You can also use ReadList[filename, Number] – Simon Woods Sep 17 '15 at 19:44
• So, If I try Import[filename, "Table"] I got Import::noelem: "The Import element \"Table\" is not present when importing as \!(\"Text\")." If I try Import[filename] so the result isn't table of numbers (it's symbols) and again in cannot be used in Fourier operation – newt Sep 17 '15 at 19:45
• ReadList[filename, Number] solves the problem. But what if the most part of my file contains such non-numerical symbols like "-9.18301e-5", so I cannot just erase them? How can I transform all of them to make Fourier operation be possible? – newt Sep 17 '15 at 19:48
• That error does not make sense to me (about the Table import). I can't reproduce it. Can you post your file somewhere that we can look at it? "-9.18301e-5" is a number, it's just encoded in scientific notation. – nben Sep 17 '15 at 19:51
• @user21382 I added link to my file. It's interesting that file itself does not contain any numbers in scientific notation. – newt Sep 17 '15 at 20:02