matlab 繪製雙三次插值函式曲線

2022-05-13 21:13:09 字數 2162 閱讀 7681

想要的效果:

程式設計時要用到分段函式曲線的繪製方法:..+.*(分段條件)。

需要注意的是:函式表示式中的乘除和乘方都要加「.」。因為一般的函式都是數在乘變數運算。

然後想將座標軸變一下:

新建乙個xyplot.m檔案:

function xyplot(x,y)

%xyplot plot 2d axes through the origin

% example 1

:% t = linspace(0,2*pi,500

); % y1 = 80*sin(t);

% y2 = 100*cos(t);

%xyplot(t,[y1;y2])

%% example 2

:% x = -2*pi:pi/10:2*pi;

% y =sin(x);

%plot(x,y)

%xyplot

%plot

if nargin>0

if nargin == 2

plot(x,y);

else

display(

'not 2d data set!')

endendhold on;

%get ticks

x=get(gca,'

xtick');

y=get(gca,'

ytick');

%get labels

xl=get(gca,'

xticklabel');

yl=get(gca,'

yticklabel');

%get offsets

xoff=diff(get(gca,'

xlim

'))./40

;yoff=diff(get(gca,'

ylim

'))./40

;%draw axis lines

plot(

get(gca,'

xlim

'),[0

0],'k'

);plot([

00],get(gca,'

ylim

'),'k'

);% plot new

ticks

for i=1

:length(x)

plot([x(i) x(i)],[

0 yoff],'-k'

);end;

for i=1

:length(y)

plot([xoff,

0],[y(i) y(i)],'-k'

);end;

%add labels

text(x,zeros(size(x))-2.*yoff,xl);

text(zeros(size(y))-3.*xoff,y,yl);

box off;

%axis square;

axis off;

set(gcf,'

color

','w

');

重新呼叫執行即可:

雙三次插值計算流程

雙三次演算法與雙線性插值相比,需要計算相鄰16個點的輸入畫素,即w方向座標分別為w 1 w w 1 w 2 h方向座標分別為h 1 h h 1 h 2。如何計算每個點對應的權重呢?opencv的計算方法是這樣的 fx float dx 0.5 scale x 0.5 sx cvfloor fx fx...

js 雙線性插值 雙三次插值法 實現

雙三次插值法 js實現 在網頁中利用canvas進行繪圖時,遇到乙個問題,原始的資料解析度很小,而要放大到整個網頁,所以需要把資料進行插值放大。學習了雙線性插值和三次內插法插值,兩種方式實現效果不同,都用js 實現了一下,下面給大家分享一下 雙線性插值即在x和y兩個方向上,對資料各進行一次線性插值。...

分段三次Hermite插值Matlab實現

function m matrix hermite x,y,y0,yn,x value 輸入值分配,x input,y input均為陣列,y 0,y n為x 0,x n分別對應的一階導數值 x input x y input y y 0 y0 y n yn number size x input ...