문제

기호 집계 근사 시계열(x,t)을 기호로 변환하는 방법에 대해 설명합니다. 이를 기반으로 몇 가지 기본 쿼리가 있습니다.시간 신호가 위치 좌표를 나타내는 (x,y,z,t) 또는 타임 스탬프 t가 있는 2차원 이미지의 경우 간단히 (x,y,t)의 합성인 경우 어떻게 될까요?그렇다면 이 도구를 사용하여 기호를 할당/이산화하려면 어떻게 해야 합니까? 도와주세요.

도움이 되었습니까?

해결책

당신은 색소폰 각 차원으로 개별적으로 변환한 다음 각 타임스탬프에 대한 기호/문자를 결합합니다.

예를 들어 (x,y,z,t)를 사용하면 다음과 같은 조합을 얻게 됩니다. b,a,c t=1인 경우 a,a,c t=2 등의 경우

그런 다음 원하는 경우 기호를 결합하여 "메가 기호"를 형성할 수 있습니다.기호 집합이 다음과 같다고 가정해 보겠습니다. Symbols={a,b,c}.그러면 새로운 문자 세트는 단순히 데카르트 곱이 될 것입니다. SxSxS (각 차원마다 하나씩)

다시 말해서 aaa 새 글자가 되다 A, aab ~처럼 B, 그 다음에 aac, aba, abb, 등..


편집하다:

다음은 내가 염두에 두고 있던 것을 보여주는 몇 가지 코드입니다.SAX 알고리즘을 구현하지 않았으므로 다음 함수를 자리 표시자로 사용하겠습니다(쓰레기를 반환함).

%# use your actual SAX function instead of this one
my_sax_function = @(x,n,a) randi(a, [n 1]);

코드는 다음과 같습니다.

%# time series of length=100, with (x,y,z) at each timestamp
data = cumsum(randn(100,3));

%# apply your SAX function to each dimension independently
N = 20;     %# number of segments to divide the signal into
A = 3;      %# size of alphabet (a,b,c)
dataSAX = zeros(N,3);
for i=1:3
    dataSAX(:,i) = my_sax_function(data(:,i), N, A);
end

%# we assume the above function returns integers denoting the symbols
%# therefore row i corresponds to A=3 symbols for each of the 3 x/y/z dimensions
dataSAX(1,:)

%# build cartesian product of all combinations of the A=3 symbols
[x y z] = ndgrid(1:A,1:A,1:A);
cartProd = [x(:) y(:) z(:)];

%# map to the new alphabet with 3*3*3 = 27 symbols
[~,V] = ismember(dataSAX, cartProd, 'rows')

%# A to Z with $ character to make up 27 symbols
oldSymbols = {'a';'b';'c'};             %# 1: a, 2: b, 3: c
newSymbols = cellstr(['A':'Z' '$']');   %# 1: A, ..., 26: Z, 27: $

%# SAX representation of the entire time series as a string
mappedV = char(newSymbols(V))'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top