xs_g 2020-06-03 08:53 采纳率: 0%
浏览 185

Matlab显示??? Subscript indices must either be real positive integers or logicals小白跪求大神指导

lf1=0.04; %define lf,hf
lf2=0.15;
hf1=0.40;
N1=0;
N2=0;
N3=0;
N4=0;
nfft1=0;
N5=0;
N6=0;
rr=[1.0898
0.9551
1.0996
0.5176
1.1094
1.1953
1.2578
0.6211
1.248
1.1562
0.6387
0.5566
1.2168
0.5508
1.2285
1.125
0.5742
1.2266
0.5664
1.1934
0.5605
1.1836
0.5625
1.2129
0.623
1.2344
0.5859
1.1348
1.1914
1.125
1.1348
0.5801
0.582
0.5547
0.6133
1.082
0.5762
1.127
1.1797
0.5645
1.0234
0.4766
0.6387
0.5918
0.5879
0.6816
0.6641
0.6602
1.2988
1.2305
0.5625
1.207
0.5586
1.1836
1.1602
0.5898
1.1426
0.5781
1.1602
0.5371
1.1504
0.5273
0.5625
1.0918
0.5898
1.1758
0.5801
1.0469
0.3965
0.3809
0.4102
1.1094
1.0527
1.1113
0.582
1.2012
1.2305
0.6113
1.2617
0.5508
1.2891
1.2793
0.6074
1.1738
0.627
1.1895
0.6348
1.2031
1.1172
0.5195
1.1934]; %导入rr间期数据
nfft=length(rr);%数据长度
Fs=1;%采样率为1

%detrend result not required,we should do it later
%rr = detrend(rr,'constant');

%以五分钟为窗口,10s平移所得数据
lf_interval=0; %lf区间序列
hf_interval=0; %hf区间序列
win=300; %窗宽,取5分钟窗口
trans_win=0; %窗口长度
win_start=0; %窗口起始和结束位置
win_last=0;
win_pos=0; %窗口移动
k=0;%移动指针
l_mov=0;%移动指针
m_mov=0;
n_mov=0;
rr_maxpoint=0; %最大的打点数目
win_int=10; %以10秒开始平移
%先求出最大打点数目
for k=nfft:-1:nfft-600
trans_win=trans_win+rr(k);
if trans_win>=win
rr_maxpoint=k;
break;
end

end

trans_win=0;
%得到第一个5分钟窗口
for k=1:800
trans_win=trans_win+rr(k);
if trans_win>=win
win_start=1;
win_last=k;
break;
end

end

rr_win=0; %平移窗口长度
trans_win=0;
rr_seq=[win_start,win_last]; %窗口的第一个序列数值

%对原始数据进行补充,用于点的选择
rr1=rr;
rr_rep=repmat(0,600,1);
rr=[rr;rr_rep];

for k=1:rr_maxpoint
for l_mov=win_start:win_start+20 %平移十秒起始点
rr_win=rr_win+rr(l_mov);
if rr_win>=win_int
win_start=l_mov+1;%加1是10秒平移,不加1是九秒平移
break;
end
end

for m_mov=win_start:win_start+600 %平移十秒5分钟窗口结束点
trans_win=trans_win+rr(m_mov);
if trans_win>=win
win_last=m_mov;
break;
end

end
if win_start>=rr_maxpoint
k=rr_maxpoint;
break;
else
trans_win=0;
rr_win=0;
rr_seq=[rr_seq;win_start,win_last];
end
end

lf_sequence=[];
hf_sequence=[];
rr=rr1;
mov_length=size(rr_seq);
fft_length=mov_length(1);

%detrend result not required,we should do it later
%rr = detrend(rr,'linear');
rr = detrend(rr,'constant');

for k=1:fft_length
N5=rr_seq(k,1);
N6=rr_seq(k,2);
rr2=rr(N5:N6);
nfft1=length(rr2);
noverlap=round(nfft1/2);
[Pxx1,f1]=pwelch(rr2,hamming(nfft1),noverlap,nfft1,Fs);
Pxx1=Pxx1*1000;%s2换成ms2
freq_length1=length(f1);

%计算各段的区间
for i=1:freq_length1
if f1(i)==lf1
N1=i;
break;
end
if f1(i)>lf1
N1=i-1;
break;
end
end

for i=1:freq_length1
if f1(i)==lf2
N2=i;
break;
end
if f1(i)>lf2
N2=i-1;
break;
end
end
N3=N2+1;

for i=1:freq_length1
if f1(i)==hf1
N4=i;
break;
end
if f1(i)>hf1
N4=i-1;
break;
end
end

%计算各段之间LF,HF功率谱
psdlf1=0;
psdhf1=0;
for i=N1:N2
psdlf1=psdlf1+Pxx1(i);
end

for i=N3:N4
psdhf1=psdhf1+Pxx1(i);
end
%lf,hf序列
lf_sequence=[lf_sequence;psdlf1];
hf_sequence=[hf_sequence;psdhf1];
end
??? Subscript indices must either be real positive integers or logicals.

图片说明这里的导入代码要怎么写呢?

  • 写回答

1条回答

  • zqbnqsdsmd 2020-06-05 15:24
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。