Octave 防止倍频程打印出矢量
我有以下脚本:Octave 防止倍频程打印出矢量,octave,Octave,我有以下脚本: x = 0:1/32:10; # 10 sec y = floor(sin(x) * 800 + 800); function [x_out, y_out] = compress (x_in, y_in) x_out = x_in; y_out = y_in; tol = 5; do dropped = false; idx = 1; while (y_out(idx + 2))
x = 0:1/32:10; # 10 sec
y = floor(sin(x) * 800 + 800);
function [x_out, y_out] = compress (x_in, y_in)
x_out = x_in;
y_out = y_in;
tol = 5;
do
dropped = false;
idx = 1;
while (y_out(idx + 2))
if (x_out(idx + 1) - x_out(idx) == x_out(idx + 2) - x_out(idx + 1))
min = y_out(idx) + y_out(idx + 2) - (2 * tol);
max = y_out(idx) + y_out(idx + 2) + (2 * tol);
if ((min <= y_out(idx + 1) * 2) && (y_out(idx + 1) * 2 <= max))
x_out(idx + 1) = [] # Drop the val
y_out(idx + 1) = [] # Drop the val
dropped = true;
else
idx++;
endif
else
idx++;
endif
endwhile
until (dropped == false)
endfunction
[x_o, y_o] = compress (x, y);
plot(x_o, y_o, ".");
x=0:1/32:10;#10秒
y=地板(sin(x)*800+800);
函数[x_out,y_out]=压缩(x_in,y_in)
x_out=x_in;
y_out=y_in;
tol=5;
做
删除=错误;
idx=1;
while(y_out(idx+2))
如果(x_out(idx+1)-x_out(idx)=x_out(idx+2)-x_out(idx+1))
最小值=y_out(idx)+y_out(idx+2)-(2*tol);
max=y_out(idx)+y_out(idx+2)+(2*tol);
如果((min)是因为您没有抑制输出。请使用;
在这里:
因为您没有禁止输出。请使用;
在这里:
x_out(idx + 1) = []; # Drop the val
y_out(idx + 1) = []; # Drop the val