I need matlab code to generate smooth curve for data set

1 次查看(过去 30 天)
x1 =[ 450 600 1500 3000 6000];
y1 =[ 1.8 1.0 0.43 0.3 0.22];
x2 =[ 750 1000 2500 5000 10000];
y2 =[ 3.6 2 0.86 0.6 0.44];
x3=[ 900 1200 3000 6000 12000];
y3 =[ 5.4 3.6 1.29 0.9 0.66];
plot(x1,y1);
hold on;
plot(x2,y2);
hold on;
plot(x3,y3);
title('operation current vs operation time');
xlabel('operation current(A)');
ylabel ('operation time(s)');
grid on;
i used curve fitting tool but cant plot all 3 curves in same grap

采纳的回答

dpb
dpb 2020-3-1
编辑:dpb 2020-3-1
There's a way to save the results of the fit session to the command window, but I always have to figure it out and it's more trouble than just doing the fit directly since you know the model you want...
X=[x1;x2;x3].'; % put the data into array by column
Y=[y1;y2;y3].';
f=arrayfun(@(i) fit(X(:,i),Y(:,i),'power2'),1:3,'uni',0); % fit all three pairs
figure,hAx=axes;hold on % make figure, prepare plot
hL=arrayfun(@(i) plot(f{i},'-',X(:,i),Y(:,i),'x'),1:3,'uni',0); % plot, save line handles
Yields
Above saves the fits in the cell array f, to retrieve each just dereference with the curlies "{}"
>> whos f
Name Size Bytes Class Attributes
f 1x3 3147 cell
>> f{1}
ans =
General model Power2:
ans(x) = a*x^b+c
Coefficients (with 95% confidence bounds):
a = 3.791e+06 (-3.451e+07, 4.21e+07)
b = -2.412 (-4.065, -0.7593)
c = 0.2763 (0.06942, 0.4832)
>>
See the section on postprocessing linked to from the documentation for fit for all else can be done...

更多回答(1 个)

Thiago Henrique Gomes Lobato
if you look at the result you will see the fit function for each curve. In your actual image the "f(x)=a*x^b+c" with the coefficients below. You literally just need to plot this function with a given x interval. An example:
x1=400:6200;
y1 = a1*x1.^b1+c1; % Just copy the coefficient values from the result box for each curve
plot(x1,y1)
  1 个评论
dpb
dpb 2020-3-1
But, there are only 4 significant digits in the display and one has to manually write the expression besides...not at all pleasant task.
There is a Generate Code option under the File menu that will write the above code (and a lot more that typically isn't needed) that can then use to get the actual coefficients in the model.
There's a Save Session function as well, but all one can do with it is to reload the data back into the tool.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Smoothing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by