我对MATLAB很陌生。我可以通过 MATLAB 使用所有数据的平均值来绘制曲线拟合图。现在,我想在我的 Y 数据上设置错误栏。我现在有两个问题:1- 我应该如何在 MATLAB 中给出和定义误差线顺序?2-我应该如何在EXCEL文件中组织数据?我的意思是,我应该把重复放在列中吗?
我的图形是散点平台,我自己在 MATLAB 中的顺序如下:
A=xlsread('C:UsersSaraDesktopbook');
x=A(:,1);
y=A(:,2);
f=fit(x,y,'k*x^n')
plot(f,'--',x,y,'o');
xlabel('Time (min)')
ylabel('qt(ppm)')
d=fit(x,y,'(q*k*x)/(1+k*x)')
hold on
plot(d,'b:',x,y, 'o');
legend('exp','pseudo','off','first')
legend('exp','pseudo','exp','first')
非常感谢。
这就是我想出的,让我知道它是否是你需要的:
% Housekeeping
close all, clc
% Extract the data
x = A(:,1);
y = A(:,2);
% New data, comment out if you don't want to do this
for i=1:length(x)/3
idx = (i-1)*3+1;
x2(i) = mean(x(idx:(idx+2)));
y2(i) = mean(y(idx:(idx+2)));
end
% Comment this if you want to use your original x and y
x = x2';
y = y2';
% Fit the data with model 1
f = fit(x,y,'k*x^n');
plot(x,y,'bo'), hold on
err = abs(f(y)-y); % Compute the error
% the err/2 is because it seems like error bar will do +-error so the
% length of the bar is twice the error
errorbar(x,y,err/2) % Plot the error
plot(x,f(y),'r--'), hold on
legend('data','error bars','model 2')
xlabel('Time (min)'), ylabel('qt(ppm)')
% Fit the data with model 2
figure
plot(x,y,'go'), hold on
d = fit(x,y,'(q*k*x)/(1+k*x)');
err = abs(d(y)-y); % Compute the error
errorbar(x,y,err/2) % Plot the error
plot(x,d(y),'r--'), hold on
legend('data','error bars','model 2')
xlabel('Time (min)'), ylabel('qt(ppm)')
建议,我已经对数据进行了平均,因为对于相同的 x,您有 3 个不同的样本,您不能将其直接提供给曲线拟合软件,或者更好地说您不应该这样做。
顺便说一下,我假设数据是这种格式的,因为当你粘贴它时,不清楚什么是x,什么是y:
% 0 0
% 0 0
% 0 0
% 2.0000 0.0853
% 2.0000 0.0890
% 2.0000 0.0800
% 5.0000 0.3398
% 5.0000 0.3248
% 5.0000 0.3310
% 10.0000 0.6197
% 10.0000 0.6000
% 10.0000 0.6166
% 15.0000 0.9558
% 15.0000 0.9590
% 15.0000 0.8923
% 20.0000 1.0030
% 20.0000 1.0000
% 20.0000 1.0045
% 25.0000 1.0110
% 25.0000 1.0100
% 25.0000 1.0210
% 30.0000 1.0010
% 30.0000 1.0110
% 30.0000 1.0110