Finding and changing strings in a matrix

*To*: mathgroup at smc.vnet.net*Subject*: [mg106745] Finding and changing strings in a matrix*From*: Jagra <jagra24891 at mypacks.net>*Date*: Fri, 22 Jan 2010 05:40:02 -0500 (EST)

Hi everyone! I have a matrix with {500, 20} dimensions. Some random positions in each column have text strings in them instead of numbers. While it can happen, the text strings do not typically appear across an entire row of data. I need to find the text strings and replace them by the values immediately above them. In the case where the matrix has consecutive text strings I need to replace them with the first number above the run of strings. Here's a part of the data file so you get the idea of what I start with: myData ={{5217.61, 10163.8, 5844.44}, {5196.81, 10142.1, 5831.21}, {5293.99, 10183.5, 5930.53}, {5328.66, 10378., 5945.69}, {5372.38, "-", 5957.44}, {5402.41, 10536.9, "-"}, {"-", 10494.7, "-"}, {"-", 10634.2, 6002.92}, {5437.61, 10638.1, 6011.55}, {5397.86, 10546.4, 5957.43}, {5412.88, "-", "-"}}; myData // MatrixForm I want to get rid of all "-"s and replace them with the numbers most directly above them. I guess I could do this with loops, but that seems like a waste of Mathematica's power. I've tried using Rest[myData] and Most[myData] then using Position to identify where one of the matrices had strings and the other didn't then using that to replace the strings in the original data. But I run into a snag when I have consecutive strings. I hope someone can help. Cool forum, lots to learn! Thanks. Jagra

**Follow-Ups**:**Re: Finding and changing strings in a matrix***From:*Tomas Garza <tgarza10@msn.com>