Quantcast
Channel: Recent posts
Viewing all articles
Browse latest Browse all 190

Correlation

$
0
0

Hi all,



I have a lot of trouble understanding how the correlation/convolution functions are used.



I have looked at the Information from the Manual but the description - involving finite functions - is far too abstract (and I've been used to abstractness as a physicist).



Can someone help me carry out a simple correlation analysis on two trivial vectors, say



v1 =(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

v2 = (1.01, 1.99, 3.01, 3.99, 5.01, 5.99, 7.01, 7.99, 9.01, 9.99)

(which should be approximatively 1) just to get me going?

Concretely: what should be my input, what will my output look like (and, ideally, why...)?

Here's what I have :

#define XSHAPE 10

#define YSHAPE 10

#define ZSHAPE (XSHAPE-1)+(YSHAPE-1)+1

int test6()

{

VSLCorrTaskPtr task; // declare the task

MKL_INT mode, xshape, yshape, zshape; //declare some variables

static double x[XSHAPE], y[YSHAPE], z[ZSHAPE]; //declare the input and output arrays

MKL_INT xstride = 1, ystride = 1, zstride = 1; //declare the "increment"

int status, ok, i;

xshape = XSHAPE; //length of vector

yshape = YSHAPE;

zshape = ZSHAPE;

for (i = 0; i<xshape; i++) // initialize the input vectors.

x[i] = i+1;

for (i = 0; i<yshape; i++)

y[i] = i+1 + 0.01*pow(-1,i);

ok = 1; // a priori success.

printf("EXAMPLE executing a correlation task\n");

mode = VSL_CORR_MODE_AUTO; //set mode

vsldCorrNewTask1D(&task, mode, xshape, yshape, zshape); //create task with, as an argument: reference to task object, mode, vectors lengths.

status = vsldCorrExec1D(task, x, xstride, y, ystride, z, zstride); // initialize status with task, vectors and respective increments. Execute task, fill vector z.

if (status != VSL_STATUS_OK) { // problem with the initialization of the status. // conversion from "status type" to int?

printf("ERROR: bad status: %d\n", status);

ok = 0; // boolean of success

}

 

for (i = 0; i < yshape; i++)

{

std::cout << y[i] << std::endl;

}

printf("EXAMPLE %s\n", ok ? "PASSED" : "FAILED");

return !ok;}

 

Thanks in advance!

 

Jérôme


Viewing all articles
Browse latest Browse all 190

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>