⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 invinterp1.m

📁 《精通matlab7》“mastering matlab 7”的代码。
💻 M
字号:
% invinterp1

% x = (1:10).';
% %x = linspace(1,100,100000);
% y = cos(pi*x);
% 
% yo = .2;

if yo<min(y) || yo>max(y) % quick exit if no values exist
   xo = [];
else                      % search for the desired points
   
   n = length(y);
   xo = zeros(size(y))+nan; % preallocate space for found points
   alpha = 0;
   
   for k=1:n-1
      if ( y(k)<yo && y(k+1)>=yo ) ||... % below then above
         ( y(k)>yo && y(k+1)<=yo )       % above then below
      
         alpha = (yo-y(k))/(y(k+1)-y(k));    % distance between x(k+1) and x(k)
         xo(k) = alpha*(x(k+1)-x(k)) + x(k); % linearly interpolate
      end
   end
   xo = xo(~isnan(xo));      % get rid of unneeded preallocated space
   yo = repmat(yo,size(xo)); % duplicate yo to match xo points found
end

% if ~isempty(xo)
%    xol = [x(1); x(end)];
%    yol = [yo; yo];
%    plot(x,y,xol,yol,xo,yo,'o')
%    xlabel X
%    ylabel Y
%    title('Figure 38.2: Inverse Interpolation')
% end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -