<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822</link>
    <title>MATLAB Central Newsreader - interpolate missing data</title>
    <description>Feed for thread: interpolate missing data</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Tue, 06 May 2008 16:17:02 -0400</pubDate>
      <title>interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430602</link>
      <author>Hydroman S</author>
      <description>My matrix &lt;br&gt;
&lt;br&gt;
a = magic(4); a(2,2) = NaN ; a(3,3)=NaN&lt;br&gt;
&lt;br&gt;
a =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16     2     3    13&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5   NaN    10     8&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9     7   NaN    12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4    14    15     1&lt;br&gt;
&lt;br&gt;
is missing some data, how do I interpolate missing data &lt;br&gt;
along the columns? </description>
    </item>
    <item>
      <pubDate>Tue, 06 May 2008 16:30:21 -0400</pubDate>
      <title>Re: interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430607</link>
      <author>John D'Errico</author>
      <description>&quot;Hydroman S&quot; &amp;lt;amirgsalem@gmail.com&amp;gt; wrote in message &lt;br&gt;
&amp;lt;fvq09u$59o$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; My matrix &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a = magic(4); a(2,2) = NaN ; a(3,3)=NaN&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;     16     2     3    13&lt;br&gt;
&amp;gt;      5   NaN    10     8&lt;br&gt;
&amp;gt;      9     7   NaN    12&lt;br&gt;
&amp;gt;      4    14    15     1&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; is missing some data, how do I interpolate missing data &lt;br&gt;
&amp;gt; along the columns? &lt;br&gt;
&amp;nbsp;&lt;br&gt;
inpaint nans will interpolate in two&lt;br&gt;
dimensions.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?&quot;&gt;http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?&lt;/a&gt;&lt;br&gt;
objectId=4551&amp;objectType=file&lt;br&gt;
&lt;br&gt;
If you only want to interpolate in one&lt;br&gt;
dimension, then you can most simply loop&lt;br&gt;
over each column, calling inpaint_nans&lt;br&gt;
repeatedly.&lt;br&gt;
&lt;br&gt;
Or you could use interp1, but you will&lt;br&gt;
need to do more work, finding the nans&lt;br&gt;
yourself.&lt;br&gt;
&lt;br&gt;
John</description>
    </item>
    <item>
      <pubDate>Tue, 06 May 2008 18:39:03 -0400</pubDate>
      <title>Re: interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430632</link>
      <author>Hydroman S</author>
      <description>Thanks John,&lt;br&gt;
&lt;br&gt;
Here is what I did, and it seems to have worked, I just &lt;br&gt;
wanted to get your blessing.  Also, I was not sure how to &lt;br&gt;
implement a &amp;#8216;spline&amp;#8217; interpolation using your &lt;br&gt;
inpaint_nans.m function. &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
a = magic(4); a(2,2) = NaN ; a(3,3)=NaN&lt;br&gt;
[M,N] = size(a);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for k = 1:length(M)&lt;br&gt;
a=inpaint_nans(a)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&lt;br&gt;
a =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16     2     3    13&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5   NaN    10     8&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9     7   NaN    12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4    14    15     1&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
a =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;16.0000    2.0000    3.0000   13.0000&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.0000    6.0000   10.0000    8.0000&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9.0000    7.0000   11.0000   12.0000&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.0000   14.0000   15.0000    1.0000</description>
    </item>
    <item>
      <pubDate>Tue, 06 May 2008 18:58:03 -0400</pubDate>
      <title>Re: interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430640</link>
      <author>John D'Errico</author>
      <description>&quot;Hydroman S&quot; &amp;lt;amirgsalem@gmail.com&amp;gt; wrote in message &lt;br&gt;
&amp;lt;fvq8k7$4h2$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Thanks John,&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Here is what I did, and it seems to have worked, I just &lt;br&gt;
&amp;gt; wanted to get your blessing.  Also, I was not sure how to &lt;br&gt;
&amp;gt; implement a &amp;#8216;spline&amp;#8217; interpolation using your &lt;br&gt;
&amp;gt; inpaint_nans.m function. &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a = magic(4); a(2,2) = NaN ; a(3,3)=NaN&lt;br&gt;
&amp;gt; [M,N] = size(a);&lt;br&gt;
&amp;gt;     for k = 1:length(M)&lt;br&gt;
&amp;gt; a=inpaint_nans(a)&lt;br&gt;
&amp;gt;     end&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;     16     2     3    13&lt;br&gt;
&amp;gt;      5   NaN    10     8&lt;br&gt;
&amp;gt;      9     7   NaN    12&lt;br&gt;
&amp;gt;      4    14    15     1&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;    16.0000    2.0000    3.0000   13.0000&lt;br&gt;
&amp;gt;     5.0000    6.0000   10.0000    8.0000&lt;br&gt;
&amp;gt;     9.0000    7.0000   11.0000   12.0000&lt;br&gt;
&amp;gt;     4.0000   14.0000   15.0000    1.0000&lt;br&gt;
&lt;br&gt;
What you did was equivalent to a single call&lt;br&gt;
to inpaint_nans, working in 2 dimensions.&lt;br&gt;
Note the difference below between b and c.&lt;br&gt;
&lt;br&gt;
a = magic(4); a(2,2) = NaN ; a(3,3)=NaN&lt;br&gt;
b=inpaint_nans(a)&lt;br&gt;
&lt;br&gt;
[M,N] = size(a);&lt;br&gt;
c = a;&lt;br&gt;
for i = 1:M&lt;br&gt;
&amp;nbsp;&amp;nbsp;c(:,i) = inpaint_nans(a(:,i));&lt;br&gt;
end&lt;br&gt;
c&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
b =&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16            2            3           13&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5            6           10            8&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9            7           11           12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4           14           15            1&lt;br&gt;
&lt;br&gt;
c =&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16            2            3           13&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5          3.6           10            8&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9            7         13.4           12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4           14           15            1&lt;br&gt;
&lt;br&gt;
Of course, you need to decide whether&lt;br&gt;
one is more appropriate than the other.&lt;br&gt;
It depends on how the columns of a are&lt;br&gt;
related to each other.&lt;br&gt;
&lt;br&gt;
John</description>
    </item>
    <item>
      <pubDate>Tue, 06 May 2008 19:48:03 -0400</pubDate>
      <title>Re: interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430647</link>
      <author>Hydroman S</author>
      <description>Q:  Why do I get this error, even with the example &lt;br&gt;
provided?&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt; In inpaint_nans at 170&lt;br&gt;
Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt; In inpaint_nans at 170&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I don't see any singularities with my matrix. Both det(b) &lt;br&gt;
&amp; det(c) are +ve real numbers </description>
    </item>
    <item>
      <pubDate>Tue, 06 May 2008 21:23:04 -0400</pubDate>
      <title>Re: interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430670</link>
      <author>John D'Errico</author>
      <description>&quot;Hydroman S&quot; &amp;lt;amirgsalem@gmail.com&amp;gt; wrote in message &lt;br&gt;
&amp;lt;fvqclj$81r$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Q:  Why do I get this error, even with the example &lt;br&gt;
&amp;gt; provided?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt; &amp;gt; In inpaint_nans at 170&lt;br&gt;
&amp;gt; Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt; &amp;gt; In inpaint_nans at 170&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I don't see any singularities with my matrix. Both det(b) &lt;br&gt;
&amp;gt; &amp; det(c) are +ve real numbers &lt;br&gt;
&lt;br&gt;
What example generates this error message?&lt;br&gt;
Please show me or send it to me.&lt;br&gt;
&lt;br&gt;
Even if all of the elements are NaNs, that&lt;br&gt;
message does not result in my tests.&lt;br&gt;
&lt;br&gt;
John</description>
    </item>
    <item>
      <pubDate>Tue, 06 May 2008 21:44:03 -0400</pubDate>
      <title>Re: interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430671</link>
      <author>Hydroman S</author>
      <description>% the example&lt;br&gt;
&lt;br&gt;
a = magic(4); a(2,2) = NaN ; a(3,3)=NaN&lt;br&gt;
b=inpaint_nans(a)&lt;br&gt;
[M,N] = size(a);&lt;br&gt;
c = a;&lt;br&gt;
for i = 1:M&lt;br&gt;
&amp;nbsp;&amp;nbsp;c(:,i) = inpaint_nans(a(:,i));&lt;br&gt;
end&lt;br&gt;
c&lt;br&gt;
&lt;br&gt;
if I paste above example in matlab 7.0.0.19920 (R14), this &lt;br&gt;
is the output I get:&lt;br&gt;
&lt;br&gt;
a =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16     2     3    13&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5   NaN    10     8&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9     7   NaN    12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4    14    15     1&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
b =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16            2            3           13&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5            6           10            8&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9            7           11           12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4           14           15            1&lt;br&gt;
&lt;br&gt;
Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt; In inpaint_nans at 170&lt;br&gt;
Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt; In inpaint_nans at 170&lt;br&gt;
&lt;br&gt;
c =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16            2            3           13&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5          3.6           10            8&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9            7         13.4           12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4           14           15            1&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
and if I paste it in matlab 6.1.0.450 (R12.1), this is &lt;br&gt;
what I get:&lt;br&gt;
&lt;br&gt;
a =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16     2     3    13&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5   NaN    10     8&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9     7   NaN    12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4    14    15     1&lt;br&gt;
&lt;br&gt;
??? Error: File: C:\MATLAB6p1\work\inpaint_nans.m Line: &lt;br&gt;
123 Column: 16&lt;br&gt;
Expected a variable, function, or constant, found &quot;|&quot;.</description>
    </item>
    <item>
      <pubDate>Wed, 07 May 2008 01:12:03 -0400</pubDate>
      <title>Re: interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430700</link>
      <author>John D'Errico</author>
      <description>&quot;Hydroman S&quot; &amp;lt;amirgsalem@gmail.com&amp;gt; wrote in message &lt;br&gt;
&amp;lt;fvqjf3$mp2$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; % the example&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a = magic(4); a(2,2) = NaN ; a(3,3)=NaN&lt;br&gt;
&amp;gt; b=inpaint_nans(a)&lt;br&gt;
&amp;gt; [M,N] = size(a);&lt;br&gt;
&amp;gt; c = a;&lt;br&gt;
&amp;gt; for i = 1:M&lt;br&gt;
&amp;gt;   c(:,i) = inpaint_nans(a(:,i));&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; c&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; if I paste above example in matlab 7.0.0.19920 (R14), this &lt;br&gt;
&amp;gt; is the output I get:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;     16     2     3    13&lt;br&gt;
&amp;gt;      5   NaN    10     8&lt;br&gt;
&amp;gt;      9     7   NaN    12&lt;br&gt;
&amp;gt;      4    14    15     1&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; b =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;            16            2            3           13&lt;br&gt;
&amp;gt;             5            6           10            8&lt;br&gt;
&amp;gt;             9            7           11           12&lt;br&gt;
&amp;gt;             4           14           15            1&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt; &amp;gt; In inpaint_nans at 170&lt;br&gt;
&amp;gt; Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt; &amp;gt; In inpaint_nans at 170&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; c =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;            16            2            3           13&lt;br&gt;
&amp;gt;             5          3.6           10            8&lt;br&gt;
&amp;gt;             9            7         13.4           12&lt;br&gt;
&amp;gt;             4           14           15            1&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; and if I paste it in matlab 6.1.0.450 (R12.1), this is &lt;br&gt;
&amp;gt; what I get:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;     16     2     3    13&lt;br&gt;
&amp;gt;      5   NaN    10     8&lt;br&gt;
&amp;gt;      9     7   NaN    12&lt;br&gt;
&amp;gt;      4    14    15     1&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ??? Error: File: C:\MATLAB6p1\work\inpaint_nans.m Line: &lt;br&gt;
&amp;gt; 123 Column: 16&lt;br&gt;
&amp;gt; Expected a variable, function, or constant, found &quot;|&quot;.&lt;br&gt;
&lt;br&gt;
The latter error happened in an older &lt;br&gt;
release of Matlab. Inpaint_nans uses a&lt;br&gt;
facility that was introduced after version&lt;br&gt;
6.1. So it is not backwards compatible to&lt;br&gt;
the older release.&lt;br&gt;
&lt;br&gt;
The first message is a warning message,&lt;br&gt;
not an error. I'm surprised that it happens&lt;br&gt;
on that matrix, since I don't get that when&lt;br&gt;
I run this test. You are using an older&lt;br&gt;
release of Matlab than I have, so I must&lt;br&gt;
presume that it is version specific, and&lt;br&gt;
resolved with my newer release. The&lt;br&gt;
result is at least correct despite the&lt;br&gt;
warning message.&lt;br&gt;
&lt;br&gt;
John</description>
    </item>
    <item>
      <pubDate>Wed, 07 May 2008 01:33:07 -0400</pubDate>
      <title>Re: interpolate missing data</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168822#430702</link>
      <author>NZTideMan</author>
      <description>On May 7, 9:44=A0am, &quot;Hydroman S&quot; &amp;lt;amirgsa...@gmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; % the example&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; a =3D magic(4); a(2,2) =3D NaN ; a(3,3)=3DNaN&lt;br&gt;
&amp;gt; b=3Dinpaint_nans(a)&lt;br&gt;
&amp;gt; [M,N] =3D size(a);&lt;br&gt;
&amp;gt; c =3D a;&lt;br&gt;
&amp;gt; for i =3D 1:M&lt;br&gt;
&amp;gt; =A0 c(:,i) =3D inpaint_nans(a(:,i));&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; c&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; if I paste above example in matlab 7.0.0.19920 (R14), this&lt;br&gt;
&amp;gt; is the output I get:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; a =3D&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; =A0 =A0 16 =A0 =A0 2 =A0 =A0 3 =A0 =A013&lt;br&gt;
&amp;gt; =A0 =A0 =A05 =A0 NaN =A0 =A010 =A0 =A0 8&lt;br&gt;
&amp;gt; =A0 =A0 =A09 =A0 =A0 7 =A0 NaN =A0 =A012&lt;br&gt;
&amp;gt; =A0 =A0 =A04 =A0 =A014 =A0 =A015 =A0 =A0 1&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; b =3D&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; =A0 =A0 =A0 =A0 =A0 =A016 =A0 =A0 =A0 =A0 =A0 =A02 =A0 =A0 =A0 =A0 =A0 =A0=&lt;br&gt;
3 =A0 =A0 =A0 =A0 =A0 13&lt;br&gt;
&amp;gt; =A0 =A0 =A0 =A0 =A0 =A0 5 =A0 =A0 =A0 =A0 =A0 =A06 =A0 =A0 =A0 =A0 =A0 10 =&lt;br&gt;
=A0 =A0 =A0 =A0 =A0 =A08&lt;br&gt;
&amp;gt; =A0 =A0 =A0 =A0 =A0 =A0 9 =A0 =A0 =A0 =A0 =A0 =A07 =A0 =A0 =A0 =A0 =A0 11 =&lt;br&gt;
=A0 =A0 =A0 =A0 =A0 12&lt;br&gt;
&amp;gt; =A0 =A0 =A0 =A0 =A0 =A0 4 =A0 =A0 =A0 =A0 =A0 14 =A0 =A0 =A0 =A0 =A0 15 =&lt;br&gt;
=A0 =A0 =A0 =A0 =A0 =A01&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Warning: Matrix is singular to working precision.&amp;gt; In inpaint_nans at 170&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Warning: Matrix is singular to working precision.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; In inpaint_nans at 170&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; c =3D&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; =A0 =A0 =A0 =A0 =A0 =A016 =A0 =A0 =A0 =A0 =A0 =A02 =A0 =A0 =A0 =A0 =A0 =A0=&lt;br&gt;
3 =A0 =A0 =A0 =A0 =A0 13&lt;br&gt;
&amp;gt; =A0 =A0 =A0 =A0 =A0 =A0 5 =A0 =A0 =A0 =A0 =A03.6 =A0 =A0 =A0 =A0 =A0 10 =&lt;br&gt;
=A0 =A0 =A0 =A0 =A0 =A08&lt;br&gt;
&amp;gt; =A0 =A0 =A0 =A0 =A0 =A0 9 =A0 =A0 =A0 =A0 =A0 =A07 =A0 =A0 =A0 =A0 13.4 =&lt;br&gt;
=A0 =A0 =A0 =A0 =A0 12&lt;br&gt;
&amp;gt; =A0 =A0 =A0 =A0 =A0 =A0 4 =A0 =A0 =A0 =A0 =A0 14 =A0 =A0 =A0 =A0 =A0 15 =&lt;br&gt;
=A0 =A0 =A0 =A0 =A0 =A01&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; and if I paste it in matlab 6.1.0.450 (R12.1), this is&lt;br&gt;
&amp;gt; what I get:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; a =3D&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; =A0 =A0 16 =A0 =A0 2 =A0 =A0 3 =A0 =A013&lt;br&gt;
&amp;gt; =A0 =A0 =A05 =A0 NaN =A0 =A010 =A0 =A0 8&lt;br&gt;
&amp;gt; =A0 =A0 =A09 =A0 =A0 7 =A0 NaN =A0 =A012&lt;br&gt;
&amp;gt; =A0 =A0 =A04 =A0 =A014 =A0 =A015 =A0 =A0 1&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; ??? Error: File: C:\MATLAB6p1\work\inpaint_nans.m Line:&lt;br&gt;
&amp;gt; 123 Column: 16&lt;br&gt;
&amp;gt; Expected a variable, function, or constant, found &quot;|&quot;.&lt;br&gt;
&lt;br&gt;
Here is an alternative routine that is much simpler than&lt;br&gt;
inpaint_nans.  It works on vectors and simply does linear&lt;br&gt;
interpolation across gaps.  It comes from Rich Pawlowicz's t_tide&lt;br&gt;
package:&lt;br&gt;
function y=3Dfixgaps(x);&lt;br&gt;
% FIXGAPS Linearly interpolates gaps in a time series&lt;br&gt;
%      YOUT=3DFIXGAPS(YIN) linearly interpolates over NaN&lt;br&gt;
%      in the input time series (may be complex), but ignores&lt;br&gt;
%      trailing and leading NaN.&lt;br&gt;
%&lt;br&gt;
&lt;br&gt;
% R. Pawlowicz 6/Nov/99&lt;br&gt;
&lt;br&gt;
y=3Dx;&lt;br&gt;
&lt;br&gt;
bd=3Disnan(x);&lt;br&gt;
gd=3Dfind(~bd);&lt;br&gt;
&lt;br&gt;
bd([1:(min(gd)-1) (max(gd)+1):end])=3D0;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
y(bd)=3Dinterp1(gd,x(gd),find(bd));</description>
    </item>
  </channel>
</rss>

