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);

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这句话的意思是,在Matlab中,下标索引正整数或逻辑类型。也就是说,你不能使用负数或小数作为索引,否则会出现错误。逻辑类型是指只有true和false两个值的类型,通常用于判断条件。在Matlab中,下标索引是非常重要的,因为它可以用来访问数组、矩阵等数据结构中的元素。因此,在编写Matlab程序时,一定要注意下标索引类型和范围。 ### 回答2: MATLAB 是一种强大的数学计算软件,被广泛用于工程、科学、金融等领域。在 MATLAB 中,用户可以使用数组进行数据处理和分析。数组是 MATLAB 中最基本的数据结构,以向量、矩阵、N 维数组的形式展现。在处理数组时,索引是经常使用的操作。MATLAB 中的下标索引正整数类型或逻辑类型,这是一种常见的限制。 对于一个数组 A,可以通过 A(i)、A(i,j)、A(i,j,k) 等形式来访问其中的元素。其中 i、j、k 等表示的是该元素在数组中的位置,这些位置就是索引索引正整数类型或逻辑类型。这意味着,在 MATLAB 中,我们无法使用负数或其他数据类型数据作为索引。例如,我们不能使用 A(-1) 或 A(1.5) 这样的操作。 这种限制是有原因的。一方面,索引为负数时,访问的是数组的尾部而不是头部。这可能会引起混淆和错误的计算结果。另一方面,使用其他数据类型作为索引可能会导致计算效率问题。因为 MATLAB 内部是将数组存储在内存中的,如果索引过多或者为其他数据类型,这些操作可能会导致内存的不必要占用,影响计算性能。 综上所述,MATLAB 中的下标索引正整数类型或逻辑类型,这是一种有限制的做法。虽然这种限制有时会带来一些不便,但它确保了代码的正确性和计算效率。如果需要使用其他数据类型或负数作为索引,可以通过一些数学或逻辑操作来转换为正整数类型或逻辑类型。这样,我们就可以充分利用 MATLAB 的强大功能,实现高效的数学计算和数据分析。 ### 回答3: 在使用 Matlab 进行数据分析和运算的过程中,很多时候需要对数据进行索引和查询。在 Matlab 中,我们通常使用下标索引数据下标可以是任何整数值或逻辑值。但是在使用 Matlab下标索引时,需要注意一个限制,即下标值必正整数类型或逻辑类型。 这个限制的原因主要是因为 Matlab数据的存储方式。在 Matlab 中,数据通常被存储在数组中,而数组的每个元素都有一个下标值。这个下标值用来确定该元素在数组中的位置。如果下标不是正整数或逻辑类型,那么就无法准确地确定元素的位置,从而无法正常访问和操作数据。而且,如果下标是负数或分数,那么就会导致 Matlab 在计算过程中出现错误。 因此,在使用 Matlab 进行数据处理和分析的过程中,一定要注意下标类型。如果要使用负数或分数作为下标值,则需要先对数据进行处理,将其转换为正整数类型。此外,还需要注意在使用下标索引时,要确保下标的值是合法的,并且不会超出数组的范围,否则也会导致程序出错。 总之,下标索引Matlab 中非常重要的概念,而下标值必正整数类型或逻辑类型的限制,是保证程序正确运行数据处理有效性的重要保障。因此,在使用 Matlab 进行数据分析和运算的过程中,一定要注意下标类型,并遵守 Matlab下标索引规范。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值