dpb <email@example.com> wrote in message <firstname.lastname@example.org>... > On 12/26/2012 7:45 PM, maryam wrote: > > dpb <email@example.com> wrote in message <firstname.lastname@example.org>... > >> On 12/26/2012 5:03 PM, maryam wrote: > >> > dpb <email@example.com> wrote in message <firstname.lastname@example.org>... > ... > > >> >> doc interp1 > >> >> > >> >> >> X = 0:10; V = sin(X); Xq = 0:.25:10; > >> >> >> Vq = interp1(X,V,Xq); > ... > > >> > thank you very much for your answer but I mean we have a matrix n-by-m: > >> > assume M= [a b c;d e f; g h i] > >> > I want to interpolate its rows so that is equal to > >> > M=[a a+d a+2d a+3d ... 7d b b+d ... b+7d c... c+7d ; d... d+7d... > >> f+7d ; > >> > g ... i+7d] > >> > Can you explain me how I could do it? > >> > >> I'm virtually certain you asked this same question some days ago and I > >> told you then the same thing... > >> > >> Use interp1() as the above example w/ an interpolating vector of the > >> points at which you want interpolants. Here's why I think I remember > >> the question and the response, as I pointed out then, since interp1() > >> works on columns you'll need to transpose, interpolate, then transpose > >> back. > >> > >> I can't interpret the above [a a+d a+2d ... ) precisely but assuming d > >> here is a different 'd' than that of the value in the original M(2,1) > >> and is just a delta then the interpolant would seem to be > >> linspace(0,N*d,N+1) where N is the number of intervals (7 above) added > >> to a, b, c, ..., etc. > >> > ... > > > thank you so much, I'm Beginner in matlab, > > I apologize for my request > > Is it possible give me matlab code of my question? > > I couldn't use 'for' command or M(:,columns) ... > > my matrix is 1000-by-1200 d=delta=1/16 > > its values (arrays) is arbitrary here > > That's identical to the example I gave except on an array instead of a > vector...and a still-to-be-determined precisely interpolant. > > What does the 1/16 delta refer to--is it a constant or a fraction of the > distance between columns, or what? Your description isn't precise (or > at least I can't decipher what it is you want clearly enough to actually > write a piece of specific code). > > Can you give a very small example of a dataset that you could compute > the desired result of by hand? It wouldn't have to be but one row and a > few values to illustrate what you're actually trying to do... > ------------------------------------------------------- Hi thank you so much for your reply Here is a simple code, that Matlab wouldn?t run it:
ti=1.44e-4; to=1.48e-04; dt=1e-9; m=2*ceil(.5*(to-ti)/dt); n=linspace(0,2,600); t=ti+(0:m-1)*dt; s=zeros(600,m); for k=1:600 s(k,:)=exp(i*2*pi*10e5*sqrt(3*n(k))+i*pi*t.^2); end s1=s; d=(10-n).^2/8; for k=1:600; for r=1:m-round(max(d)); s1(k,m)=s(k,m+d(k)); end end
each d vector element like d(1)=12.5 includes an integer part(12) and a fractional one(0.5). I need an interpolator to move the data an arbitrary fraction of the space between each 2 elements, this fraction is quantized to 1/16 of the space between 2 elements, so 15 different interpolators are needed to move the data by i /16 of this space, where i = 1 : 15, A simple interpolator is obtained from a truncated sinc function that the coefficients are weighted by a window like kaiser.
I didn?t know how to round d vector? And how could I interpolate rows of s matrix?