Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

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


  • Prev by Date: Re: Replace list element based on a condition how to
  • Next by Date: Re: Re: First function debug help
  • Previous by thread: Re: Re: Replace list element based on a condition how to
  • Next by thread: Re: Finding and changing strings in a matrix