MATLAB: Hii I am not understanding this code please help and explain me step by step and please explain me idx2 = [0, idx, 0] what does it do.

mathematicsMATLAB

idx = EV > 0;
if iscolumn(idx), idx = idx'; end;
idx2 = [0, idx, 0];
prePt = []; postPt = [];
for i = 2 : length(idx2)-1
if idx2(i-1) == 0 & idx2(i) == 1 & idx2(i+1) == 1
prePt = [prePt, i-1];
end
if idx2(i-1) == 1 & idx2(i) == 1 & idx2(i+1) == 0
postPt = [postPt,i-1];
end
end
segNum = length(prePt);
segment = [];
for k = 1 : segNum
segment(k,:) = [prePt(k), postPt(k)];
end

Best Answer

That bit of code concatenates zeroes onto both ends of the vector idx, and allocates this lengthened vector to a new variable idx2. Like this:
>> X = [5,6,7];
>> [0,X,0]
ans = 0 5 6 7 0
This is because the [] is a concatenation operator (not a list generation operator like lots of beginners think). Read this for more info on []: