📄 zmien_u2.m
字号:
% wylicza nowe wartosci u2(tau) po zmianie tau
function [nowe_u2,nowe_tu2] = zmien_u2 ( x,u2,tu2 )
global super_jednostka;
szerokosc = x(1);
ii = 3;
while (ii<=length(x))
szerokosc = [szerokosc (x(ii)-x(ii-1))];
ii = ii + 2;
end
nowe_u2 = []; % wartosci wektora u2
nowe_tu2 = []; % czasy dla u2
for ii=1:length(szerokosc)
if (abs(floor(szerokosc(ii)/super_jednostka)-(szerokosc(ii)/super_jednostka)))<(1e-5)
vv = 1;
ilosc_jednostek = 1+(szerokosc(ii)/super_jednostka);
else
vv = 0;
ilosc_jednostek = 2+floor(szerokosc(ii)/super_jednostka);
end;
if (ii==1)
czas_startowy_przedzialu = 0;
else
czas_startowy_przedzialu = x(2*ii-2);
end
for iii=1:ilosc_jednostek
czas_tego_u2 = czas_startowy_przedzialu+(iii-1)*super_jednostka;
if iii==ilosc_jednostek
if vv==0
czas_tego_u2 = czas_startowy_przedzialu + szerokosc(ii);
end
end
znaleziono = 0;
for iiii=1:(length(tu2))
if (czas_tego_u2-tu2(iiii))<(-0.01);
znaleziono = iiii;
break;
end
end
if znaleziono==0
nowe_u2_akt = u2(length(u2));
else
if length(u2)>=znaleziono
nowe_u2_akt = u2(znaleziono-1)+((czas_tego_u2-tu2(znaleziono-1))/(tu2(znaleziono)-tu2(znaleziono-1)))*(u2(znaleziono)-u2(znaleziono-1));
else
nowe_u2_akt = u2(length(u2));
end
end
nowe_u2 = [nowe_u2 nowe_u2_akt];
nowe_tu2 = [nowe_tu2 czas_tego_u2];
end
end
if floor(length(x)/2)==(length(x)/2)
nowe_u2 = [nowe_u2 u2(length(u2))];
nowe_tu2 = [nowe_tu2 x(length(x))];
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -