Matlab Polyfit用于数据区域

时间:2018-11-27 15:34:11

标签: matlab graph new-operator

我有一组数据,我需要为(第一阶polyfit)生成两条线性最佳拟合线,但是我不知道如何指定每条线将数据拟合到哪个区域。我需要在最小x值和0之间的区域中的一行,而在0.25

此外,在第二个区域中,有两个清晰的数据区域,一个区域在另一个区域上方,我需要最佳拟合线仅适合较低的区域。

我是Matlab的一名新手,因此非常感谢您

The graph I need the best fit lines on

%load data, force and velocity
load ('exp_6_Force');
load ('exp_6_Velocity');

% Give a name to the title bar.
set(gcf,'name','Experiment 6 velocity','numbertitle','off')

%set variables to x and y 
x = Force; 
y = Velocity;

%plot the graph
plot(x,y);

%add grid and legend
grid on;
legend ('Velocity');

%add labes and title
xlabel ('Force');
ylabel ('Velcoity');

% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);

%find coordinates of y min point
[value,index1] = min(y);
yminxcoor = x(index1);
yminycoor = y(index1);

1 个答案:

答案 0 :(得分:3)

使用logical index获取两个区域的xy数据:

对于区域1:

x_region1 = (x<0).*x
y_region1 = (x<0).*y

对于区域2:

x_region2 = (x>0.25).*x
y_region2 = (x>0.25).*y

然后您可以polyfit在这些地区

对于区域1:

p_region1 = polyfit(x_region1, y_region1, 1)

对于区域2:

p_region2 = polyfit(x_region2, y_region2, 1)