PDA

查看完整版本 : Correct translation of Matlab to Python (CID Distance)


poster
2019-11-25, 00:00
<p>This is the Matlab code for Complexity Invariance Distance (<a href="https://www.researchgate.net/publication/220906685_A_Complexity-Invariant_Distance_Measure_for_Time_Series" rel="nofollow noreferrer">Source</a>)</p>

<p>Q and C are 1d-arrays with similar length.</p>

<pre><code>function d = CID(Q, C)
CE_Q = sqrt(sum(diff(Q).^2));
CE_C = sqrt(sum(diff(C).^2));
d = sqrt(sum((Q - C).^2)) * (max(CE_Q,CE_C)/min(CE_Q,CE_C));
</code></pre>

<p>This is my pythonic translation:</p>

<pre><code>def cid_dist(Q,C):
import numpy as np
CE_Q = np.sqrt(np.sum(np.diff(Q)**2))
CE_C= np.sqrt(np.sum(np.diff(C)**2))
d = np.sqrt(np.sum((Q - C)**2)) * (np.maximum(CE_Q,CE_C)/np.minimum(CE_Q,CE_C))
return d
</code></pre>

<p>Is it correct?</p>



More... (https://stackoverflow.com/questions/59013067/correct-translation-of-matlab-to-python-cid-distance)