Chyba właśnie jednak są, bo to sam Matlab zwraca mi taką wiedzę:
Kod: Zaznacz cały
length(t1)
ans =
25374
length(t2)
ans =
25374
length(dec)
ans =
25374
Dlatego dla mnie są tu jakieś niewyjaśnione kontrowersje...
------------
Nie będę wklejał całego kodu, bo jest go trochę dużo, ale pokażę najistotniejszą część:
(tutaj: odczyt danych z dwóch plików i zapisanie ich odpowiednio: dane01.txt - do tablicy t1; dane03.txt - do tablicy t2)
Kod: Zaznacz cały
function [t1,t2] = tablica4()
source1 = importdata('dane01.txt'); % normalny
source2 = importdata('dane03.txt'); % anomalia
tp1 = source1';
tp2 = source2';
n = length(tp1);
m = length(tp2);
for i=1:n
if(i>1 && i<=n)
nowa1(i) = tp1(i) - tp1(i-1);
end
end
for j=1:m
if(j>1 && j<=m)
nowa2(j) = tp2(j) - tp2(j-1);
end
end
t1 = nowa1'; % normalny
t2 = nowa2'; % anomalia
end
tutaj: wykonanie pewnej operacji na danych z tablicy t1 i zapisanie wyniku do nowej tablicy ('dec'):
Kod: Zaznacz cały
function [mean_de,max_de,dec] = t_dec(t1)
x = length(t1);
c = 6.1035156E-5 + 0.0034179688;
t = mode(t1);
p = 0.01;
for i=1:x
if(i>1 && i<=x)
dec(i) = abs(t*c + (t1(i)-t1(i-1)) + p);
end
end
end
Nie widzę, co tu namieszałem i dlaczego Matlab się czepia...
-- 13 sty 2013, o 14:32 --
Problem rozwiązany.
O pętli się zapomniało...
Kod: Zaznacz cały
n = length(t2);
for i=1:n
if((dec(i)*1.25) < t2(i) || (dec(i)*0.75) > t2(i))
% tutaj kod osbługi błędu (...)
end
end
Tak to powinno wyglądać, może komuś się przyda