matlab索引范围,matlab - Matlab索引表达式超出范围。 尝试访问元素2。有效范围是1-1。“ 2” - 堆栈内存溢出...

在MATLAB编程中遇到错误,提示索引超出范围。问题源于尝试访问数组元素时,索引值2超出了有效范围1-1。代码段`arr(1,ii(a))=arr(1,ii(a))+abs(I(2,ii(a))-I(2,ii(a)-1)`导致了错误。I是一个二维数组,内容包括从1.0到5.5的浮点数。解决方案需要确保索引值在有效的数组边界内。
摘要由CSDN通过智能技术生成

我不断收到此错误:

索引表达式超出范围。 尝试访问元素2。有效范围是1-1。“ 2”。

我想要的输出是

abs(I(2,ii(a))-I(2,ii(a)-1)

所以当ii(a)=2 ,我希望I(2,2)减去I(2,1) ,即5.1减去5.0

该错误归因于此行:

arr(1,ii(a)) = arr(1,ii(a)) + abs(I(2,ii(a))-I(2,ii(a)-1));.

我在.mat文件中将我定义如下:

save data -v7.3 'I'

load('data.mat','I');

I =

Columns 1 through 6

0 1.0000 2.0000 3.0000 4.0000

5.0000 5.1000 5.2000 5.2000 5.5000

编码:

function arr= fcn(I,count,oldval)

persistent integ_signal

if isempty( integ_signal)

integ_signal=zeros(1,5)

end

persistent a

if isempty(a)

a=zeros(1)

end

arr=zeros(1,5);

ii=zeros(1,5);

aa=zeros(2,5);

integ_signal=oldval;

coder.extrinsic('load');

aa=load('data.mat','I');

if count==1

a=1;

ii(a)=count;

integ_signal(1,ii(a)) = 10; % Initial Condition

end

if count ~= 1

a=count;

ii(a)=count;

integ_signal(1,ii(a))= integ_signal(1, ii(a)-1);

arr(1,ii(a)) = integ_signal(1,ii(a));

arr(1,ii(a)) = arr(1,ii(a)) + abs(aa(2,ii(a))-aa(2,ii(a)-1));

end

a = a + 1;

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值