Need help with a while loop to take numbers off.
信息
此问题已关闭。 请重新打开它进行编辑或回答。
显示 更早的评论
Alright so I have counting algorithm but i need it to extract elements from an original source and after extracting them and storing I need matlab to discard them so they dont get count again. How do i do this? My code: if true
DATA = [ 60 0 40 -20 40 -40 50 -30 30 -60 0 -30 40 -30 60];
L = length(DATA);
E = [1:L];
N = 1;
while N < L
N = N + 1;
if N < 3
continue
end
X(N) = [abs(DATA(N)-DATA(N-1))];
Y(N) = [abs(DATA(N-1)-DATA(N-2))];
if X < Y
continue
else
RANGE(N) = Y(N);
XMEAN(N) = [.5*(DATA(N-1)+DATA(N-2))]
DATA (N -2) = []
DATA (N-1) = []
N = N - 2
end
for I = N:L
L = L - 2
E(I) = E(I+1);
end
end
end
1 个评论
Nicolo Zaza
2012-7-21
回答(1 个)
Image Analyst
2012-7-21
编辑:Image Analyst
2012-7-21
Yes, that will delete elements but you're indexing elements and that will change, not to mention the length of your DATA array keeps getting shorter as you delete elements to eventually as N approaches L you'll get an index out of range error.
What are you really trying to do? Can't you just extract arrays and subtract them, and use diff? Or use hist if you want to count values?
data_n = DATA(3:end)
data_nm1 = DATA(2:end-1)
data_nm2 = DATA(1:end-2)
X = abs(data_n - data_nm1)
Y = abs(data_n - data_nm2)
RANGE = y
xMean = 0.5 * (data_nm1 - data_nm2)
% I have no idea what E is supposed to represent.
此问题已关闭。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!