matlab数组索引必须为正整数或逻辑值,错误解决办法

num=16;
wh=15; h=0.002;
XT_sum=zeros(num+3,wh/h);  YT_sum=zeros(num+3,wh/h);
ZD_sum=zeros(num+3,wh/h);  FaiD_sum=zeros(num+3,wh/h);
ZDD_sum=zeros(num+3,wh/h); FaiDD_sum=zeros(num+3,wh/h);
for t=h:h:wh
    XT=rand(num+3,1)./10;  YT=rand(num+3,1)./10;
    ZD=rand(num+3,1);      FaiD=rand(num+3,1);
    ZDD=rand(num+3,1);     FaiDD=rand(num+3,1);
    
    XT_sum(1:end,t/h)=XT;   YT_sum(1:end,t/h)=YT;
    ZD_sum(1:end,t/h)=ZD;   ZD_sum(1:end,t/h)=FaiD;
    ZDD_sum(1:end,t/h)=ZDD; FaiDD_sum(1:end,t/h)=FaiDD;
end

这种错误一般出现在for循环中,当自己步长不是整数,且需要调用自己每一步的步长数。此类解决方法。就是增加一个变量,使变量在循环中+1。

num=16;
wh=15; h=0.002;
XT_sum=zeros(num+3,wh/h);  YT_sum=zeros(num+3,wh/h);
ZD_sum=zeros(num+3,wh/h);  FaiD_sum=zeros(num+3,wh/h);
ZDD_sum=zeros(num+3,wh/h); FaiDD_sum=zeros(num+3,wh/h);
i=1;
for t=h:h:wh
    XT=rand(num+3,1)./10;  YT=rand(num+3,1)./10;
    ZD=rand(num+3,1);      FaiD=rand(num+3,1);
    ZDD=rand(num+3,1);     FaiDD=rand(num+3,1);
    
    XT_sum(1:end,i)=XT;   YT_sum(1:end,i)=YT;
    ZD_sum(1:end,i)=ZD;   ZD_sum(1:end,i)=FaiD;
    ZDD_sum(1:end,i)=ZDD; FaiDD_sum(1:end,i)=FaiDD;
    i=i+1;
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值