【发布时间】:2021-04-09 16:57:27
【问题描述】:
我正在尝试在 Matlab 中绘制二维数据集的多项式拟合。
这是我尝试过的:
rawTable = readtable('Test_data.xlsx','Sheet','Sheet1');
x = rawTable.A;
y = rawTable.B;
figure(1)
scatter(x,y)
c = polyfit(x,y,2);
y_fitted = polyval(c,x);
hold on
plot(x,y_fitted,'r','LineWidth',2)
rawTable.A 和 rawTable.A 是随机生成的数字。 (即 x 数据集不能用以下形式表示:x=0:0.1:100)
结果:
但我期望的结果看起来像这样(在 Excel 中生成):
如何在 MATLAB 中绘制二阶多项式拟合?
【问题讨论】:
-
你是在excel里做这个吗?
-
嗨!你看过how to ask和minimal example吗?看看吧!这些页面中的想法对于将您的问题传达给社区的其他人至关重要。在您的具体情况下,您应该提供示例数据并更好地定义数据的组成部分。您需要解释预期的行为以及您得到的结果是如何出乎意料的。
-
数据为excel格式。我使用 MATLAB 从 excel 表中提取数据,并尝试通过这些点绘制二阶最佳拟合线。然而,正如观察到的那样,该图由多个图表组成。
-
此外,您的问题“我如何为 N(订单)= 2 及以上绘制一条线”是什么意思?这再次解释了预期的行为是什么:什么是“线”?它是二维数据集的多项式拟合吗?它是一些数据集的样条吗?它只是已知分析形式的函数图吗?它是“直线”通常表示的直线吗?等等等等。人们无法判断您的问题是理解
polyfit还是理解Matlab 中的绘图,或者只是遇到了一些语法故障。这就是一个问题在解释时应该完成的内容。 -
@Yuv:请检查我的评论。您应该在问题的正文中解释您不期望的内容。最有可能的情况是您将图形误认为是多个函数的图形,因为您的数据集未排序。通过让其他人猜测他们不应该猜测的事情,你并没有帮助自己。你需要更精确。
标签: matlab regression