error:Subscript indices must either be real positive integers or logicals.....
1 次查看(过去 30 天)
显示 更早的评论
a=('D:\TEST');
b=dir(fullfile(a));
L1=length(b);
k=1;
for i=3:L1
c=dir(fullfile(a,b(i).name));
L2=length(c);
for j=3:L2-3
d=fullfile(a,b(i).name,c(j).name);
g1(k,:)={c(j).name};
e=load(d);
n = e/2.5114;
x1=detrend(n);
y=fft(x1);
pow=y.*conj(y);
l=length(y)/2;
freq=(-l:l-1)*250/length(y);
total_pow=sum(pow);
pk=findpeaks(pow);
k=max(pk);
k1=k-0.001;
[p2,k2]=findpeaks(pow,'MinPeakHeight',k1);
% Amax=max(p2);
k3=max(k2);
fmax=freq(k3);
if ((fmax>24.5)&(total_pow>40))
d1={'Event'};
else
d1={'Not Event'};
end
t(k,:)=[total_pow d1];
k=k+1;
end
end
i am getting following error.....
>>new_seismic_first
Subscript indices must either be real positive integers or logicals.
Error in new_seismic_first (line 39)
t(k,:)=[total_pow d1];
2 个评论
Nicolas Gn
2015-12-9
编辑:Nicolas Gn
2015-12-9
k is not an integer or valid index for your array t.
I did not inspect your code in details but you can simply add a different counter such as u = 1; before your for loops and change it as t( u, :) and u = u+1; it should be enough.
回答(2 个)
Walter Roberson
2015-12-9
findpeaks() applied to an empty signal would return empty, which is not a valid subscript.
The signal could be empty if the file is empty.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!