MATLAB Lecture 9 School of Mathematical Sciences Xiamen University http://gdjpkc.xmu.edr date se linspace to generate evenly spaced values over the range of your unevenly sampled Use meshgrid to generate the plotting grid with the output of linspace Use griddata to interpolate the irregularly sampled data to the regularly spaced grid returned by meshgrid Use a plotting function to display the data. First, generate unevenly sampled data within the range [-8, 8]and use it to evaluate the function. >>x=rand(100,1)*16-8; >>y=rand(100,1)*16-8 >>r= sqrt(x. 2+y. 2)+ eps n(r)/r The linspace function provides a convenient way to create uniformly spaced data with the desired number of elements. The following statements produce vectors over the range of the random data with the same resolution as that generated by the -8.5: 8 statement in the previous sinc example >> xlin= linspace(min(x), max(x), 33) > yin=linspace( min(y), max(y), 33): >>[X,Y=meshgrid(xlin, lin); %generate a uniformly spaced grid The key to this process is to use griddata to interpolate the values of the function at the uniformly spaced points, based on the values of the function at the original data points(which are random in this example) >>Z=griddata(x, y, z, X, Y, cubic ) %uses a triangle-based cubic interpolation to ate the new data > mesh(X,Y, Z) Plotting the interpolated and the nonuniform >>axis tight; hold or > plot(x,y, z, MarkerSize, 15) %nonuniform Lec9-7MATLAB Lecture 9 School of Mathematical Sciences Xiamen University http://gdjpkc.xmu.edu.cn Lec97 Use linspace to generate evenly spaced values over the range of your unevenly sampled data. Use meshgrid to generate the plotting grid with the output of linspace. Use griddata to interpolate the irregularly sampled data to the regularly spaced grid returned by meshgrid. Use a plotting function to display the data. First, generate unevenly sampled data within the range [8, 8] and use it to evaluate the function. >> x = rand(100,1)*16 8; >> y = rand(100,1)*16 8; >> r = sqrt(x.^2 + y.^2) + eps; >> z = sin(r)./r; The linspace function provides a convenient way to create uniformly spaced data with the desired number of elements. The following statements produce vectors over the range of the random data with the same resolution as that generated by the 8:.5:8 statement in the previous sinc example. >> xlin = linspace(min(x),max(x),33); >> ylin = linspace(min(y),max(y),33); >> [X,Y] = meshgrid(xlin,ylin); %generate a uniformly spaced grid. The key to this process is to use griddata to interpolate the values of the function at the uniformly spaced points, based on the values of the function at the original data points (which are random in this example). >> Z = griddata(x,y,z,X,Y,'cubic'); %uses a trianglebased cubic interpolation to … generate the new data. >> mesh(X,Y,Z) % Plotting the interpolated and the nonuniform … data produces >> axis tight; hold on >> plot3(x,y,z,'.','MarkerSize',15) %nonuniform