Matlab下标整数,MATLAB运行出现下标索引须为正整数类型错误

本帖最后由 lishahehsizan 于 2015-9-14 15:15 编辑

下面是代码:

function out=execute(data,n)

%最大值,最小值,面积,拟合公式,弹性模量%

data1=data(:,1)-mean(data(1:20,1));

data2=data(:,2)-mean(data(1:20,2));

data0=[data1*40,data2/1.5];

a=divide(data0,n);

amax_x=[];

amax_y=[];

amin_x=[];

amin_y=[];

for i=1:n+1

amax_x=[amax_x,max(a{2*i-1}(:,1))];

amax_y=[amax_y,max(a{2*i-1}(:,2))];

amin_x=[amin_x,min(a{2*i-1}(:,1))];

amin_y=[amin_y,min(a{2*i-1}(:,2))];

end

b_y=[];

b=integral(a,n+2);

for i=1:n+1

b_y=[b_y,b{i}];

end

%b_y=b_y';

c_y=[];

for i=1:n+1

c_y=[c_y;fitt(a{2*i-1})];

end

c_y=c_y';

c_y2=[];

for i=1:n+1

c_y2=[c_y2;fitt(a{2*i})];

end

c_y2=c_y2';

d_y=[0 0 0];

for i=2:n+1

d_y=[d_y;fittt(a{2*i-1})];

end

d_y=d_y';

d_y2=[0 0 0];

for i=2:n+1

d_y2=[d_y2;fitttt(a{2*i})];

end

d_y2=d_y2';

e_y=fit_e(a,n+2);

e_y2=fit_e2(a,n+2);

out=[amax_x;amax_y;amin_x;amin_y;b_y;d_y;d_y2;c_y;c_y2;d_y2;e_y;e_y2];

% out=[amax_x;amax_y;amin_x;amin_y;b_y;c_y;e_y;c_y2;e_y2];

out=out';

end

错误如下:

警告: 多项式不是唯一的;阶数 >= 数据点的数目。

> In polyfit at 70

In fit_initial at 11

In fit_e at 12

In execute at 56

警告: 多项式不是唯一的;阶数 >= 数据点的数目。

> In polyfit at 70

In fit_initial at 11

In fit_e at 12

In execute at 56

警告: 多项式不是唯一的;阶数 >= 数据点的数目。

> In polyfit at 70

In fit_initial at 11

In fit_e at 12

In execute at 56

警告: 多项式不是唯一的;阶数 >= 数据点的数目。

> In polyfit at 70

In fit_initial at 11

In fit_e at 12

In execute at 56

下标索引必须为正整数类型或逻辑类型。

出错 fit_initial (line 4)

xx=data(a:b,1);

出错 fit_e2 (line 10)

out=[out,fit_initial(data{2*i},fix(0.2*size(data{2*i})),fix(0.8*size(data{2*i})))];

出错 execute (line 57)

e_y2=fit_e2(a,n+2);

希望大神们帮我看看    初学  请大神不吝赐教