Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: comparing and filling matrices
Replies: 5   Last Post: Jul 26, 2013 3:01 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Jonathan Allan

Posts: 116
Registered: 12/7/04
Re: comparing and filling matrices
Posted: Jul 26, 2013 2:01 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

dpb <none@non.net> wrote in message <ksubob$pnu$1@speranza.aioe.org>...
> On 7/26/2013 12:13 PM, Jonathan wrote:
> ...
>

> > I am trying to fill a matrix (CompletDat: 40020*7) containing mostly
> > NaNs, with data from a second matrix (RealDat: 36446*7).
> > The master file (CompletDat) contains discrete dates in the first
> > column, which are repeated every 15 rows. A unique id is located in the
> > second column, which is repeated for 15 rows, and then increments to the
> > next value and so on. The rest of the columns are filled with NaNs.
> > The second matrix has the same format except there are dates that are
> > missing. Hence, the overall goal is to populate the CompletDat matrix
> > with data from the other matrix, placing them in their correct row based
> > on the same date and unique id.

>
> ...
>

> > For now I have been testing it on a small matrix (CompletDat: 30*7) and
> > RealDat(26*7), the latter having four missing rows. I have played around
> > with variations of this code but I can't seem to get it to work. Any
> > help is greatly appreciated.

>
> A) What format are the dates? If you're comparing floats, have to be
> careful of "off by one bit" differences if the two files' dates weren't
> created identically.
>
> B) Should be able to create logical indexing arrays w/ ismember(),
> intersect() and friends that would serve to find the various
> combinations desired/needed. Seems like first step would be to find the
> missing values that are need, then retrieve the matching data from the
> second array.
>
> But, if these dates are known by there only being a few missing rather
> than a complete group for any given ID it seems easiest way to fill in
> would be to simply do that from the surrounding values. interp1() w/
> 'nearest' would likely be of help there.
>
> A short example showing the problem and desired solution would likely
> help...probably only needs a couple lines of a couple combinations to be
> sufficient.
>
> --
>

The dates are identical. Hadn't thought about ismember. I just tried it and its correctly identifying the areas where dates are missing. The next step is how to retrieve the matching data from the second array, which is the area I have been struggling with. Using interp etc is not an option.

Here's a sample of the data...

RealDat = [13*4]
1997.66805 2583 21 0 84.85
1998.24915 2583 21 0 80.02
2002.66805 2583 21 0 90.03
2007.741973 2583 21 0 85.25
2008.254626 2583 21 0 79.25
2008.755663 2583 21 0 83.24
2009.246412 2583 21 0 79.76
2009.725546 2583 21 0 96.7
2010.079399 2583 21 0 76.4
2010.766615 2583 21 0 97.23
2011.164275 2583 21 0 97.23
2012.79947 2583 21 0 101.81
2012.950055 2583 21 0 92.2

CompletDat =[15*4]
1997.66805 2583 NaN NaN
1998.24915 2583 NaN NaN
2002.66805 2583 NaN NaN
2007.741973 2583 NaN NaN
2007.966482 2583 NaN NaN
2008.254626 2583 NaN NaN
2008.755663 2583 NaN NaN
2009.246412 2583 NaN NaN
2009.725546 2583 NaN NaN
2009.952792 2583 NaN NaN
2010.079399 2583 NaN NaN
2010.766615 2583 NaN NaN
2011.164275 2583 NaN NaN
2012.79947 2583 NaN NaN
2012.950055 2583 NaN NaN

Thanks for your help.
Jon



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.