簡體   English   中英

如何在Matlab中找到連接數據點的繪圖方程式?

[英]How can I find equation of a plot connecting data points in Matlab?

我有各種圖( hold on ),如下圖所示: 在此處輸入圖片說明

我想知道如何在Matlab中找到這六個曲線的方程式。 謝謝。

我發現Matlab中的交互式擬合工具簡單而有用,盡管范圍有所限制:

在此處輸入圖片說明

上圖似乎是線性插值。 給定數據的向量X和Y,其中X包含參數,Y包含功能點,則可以

f = interp1(X, Y, x)

得到線性插值f(x)。 例如,如果數據是

X = [0 1 2 3  4  5];
Y = [0 1 4 9 16 25];

然后

y = interp1(X, Y, 1.5)

應該給你一個非常近似的1.5^2 interp1會與圖形完全匹配,但是您可能會對更interp1曲線擬合操作感興趣,例如樣條曲線逼近等。

盡管可能會有更好的答案,但我的建議是:嘗試查看曲線的增長率。 例如,如果增加速度看起來很快並找到多項式並計算偏差誤差,則三次方比二次方更具代表性。 對於不規則曲線,您可以嘗試樣條曲線擬合。 我想在matlab中還有一個用於樣條擬合的工具箱。

rxns代表反應嗎? 在這種情況下,曲線很可能是指數的。 指數函數的形式為: y = a*exp(b * x) 在您的情況下, y是混合區的寬度, x是時間(以年為單位)。 現在,您所需要做的就是在Matlab中運行指數回歸以找到參數ab的最佳值,您將擁有方程式。

有一種方法可以從圖形中提取具有當前圖形句柄(gcf)的信息。

例如,您可以獲得繪制在圖中的系列:

% Some figure is created and data are plotted on it
figure;
hold on;
A = [ 1 2 3 4 5 7] % Dummy data
B = A.*A % Some other dummy data
plot(A,B);
plot(A.*3,B-1);

% Those three lines of code will get you series that were plotted on your graph
lh=findall(gcf,'type','line'); % Extract the plotted line from the figure handle
xp=get(lh,'xdata'); % Extract the Xs
yp=get(lh,'ydata'); % Extract the Ys

您必須從“ findall(gcf,...)”方法中獲得其他信息。

暫無
暫無

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

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