簡體   English   中英

在MATLAB中對分散的數據進行插值

[英]Interpolate on scattered data in MATLAB

我有一系列數據(y軸)與時間(x軸)的關系。 我想通過插值找到特定“ y值”的特定時間值。 我嘗試使用interp1命令。 但是問題是,曲線在多個時間值處傳遞了該“ y值”。 interp1命令僅給出第一個時間值。 有什么方法可以執行插值,以便我可以找到每個時間值?

謝謝!

這不是一個明智的答案。 本質上您正在嘗試求解y(t)=c這可以寫成f(t)=y(t)-c = 0

然后它仍然找到函數的零交叉f(t)我想有功能來檢測過零點或找到一個數據集的根在像Matlab fzero fnzerocrossing 但是這是一個自制的函數,可以找到正弦函數值為0.5的點

t=1:50;
y=sind(4*pi.*t);
plot(t,y);
hold on;

t1=1:0.02:50;
y1=interp1(t,y,t1,'spline');
plot(t1,y1,'k');

c=0.5;

f=y1-c;
nn=length(y1);

k=0;
for i=1:nn-1
    if f(i)*f(i+1) < 0
        k=k+1;
        allzeros(k)=i;
    end
end
plot(t1(allzeros),y1(allzeros),'+');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM