MATLAB Answers

error:Subscript indices must either be real positive integers or logicals.....

1 view (last 30 days)
devendra parihar
devendra parihar on 9 Dec 2015
Commented: devendra parihar on 10 Dec 2015
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 Comments

Nicolas Gn
Nicolas Gn on 9 Dec 2015
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.

Sign in to comment.

Answers (2)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!