?? image2sf.m
字號:
function B = image2sf(varargin)% image2sf.m Interpolate a scalarfield object to a different physical domain% with the same number of dimensions%% INPUT parameters:% A : scalarfield object % pdNew : quadgrid object defining new physical domain%% OUTPUT:% B : a scalarfield object%% EXAMPLE:%% X = quadgrid('slab',35,'x')% A = bpsf(5)*rand(5,1);% x = [0:4]'/4;% I = image2sf(X,A,x);% subplot(2,2,1), plot(x,A,'-o'); grid% subplot(2,2,2), plot(I,'-o'); grid%% X = quadgrid('slab',35,'x')*quadgrid('slab',45,'y')% A = (bpsf(8)*(bpsf(5)*rand(5,8))')';% x = [0:4]'/4; y = [0:7]'/7;% I = image2sf(X,A,x,y);% subplot(2,2,3), pcolor(y,x,A);% subplot(2,2,4), plot(I), view(2)warning('obsolete - soon to be phased out')ndir = length(varargin) - 2;A = varargin{1};if ndir ~= length(A.name) error('Physical domain dimension mismatch'); end% Check if axis limits matchfor i = 1:ndir ximage = varargin{2+i}; xqgrid = A.qp{i}; if (ximage(1) ~= xqgrid(1)) | (ximage(end) ~= xqgrid(end)) error('Physical domain axis limit mismatch'); end end% Interpolate to the quadrature grid of quadgrid object Aswitch ndircase 1 ximage = varargin{3}; valimage = varargin{2}; xqgrid = A.qp{1}; val = interp1(ximage,valimage,xqgrid);case 2 ximage = varargin{3}; yimage = varargin{4}; valimage = varargin{2}; xqgrid = A.qp{1}; yqgrid = A.qp{2}; for i = 1:length(yimage); valxdone(:,i) = interp1(ximage,valimage(:,i),xqgrid,'linear'); enddisp('Interpolation in 1st dimension done') for i = 1:size(valxdone,1); val(i,:) = interp1(yimage,valxdone(i,:)',yqgrid,'linear')'; enddisp('Interpolation in 2nd dimension done')case 3 error('Not set up for 3D or higher arrays')case 4 error('Not set up for 3D or higher arrays') endB = scalarfield(A,val);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -