void loadData(string filename) { ofBuffer buffer = ofBufferFromFile(filename); data = vector<float>(); for(auto line : buffer.getLines()) { data.push_back(ofToFloat(line)); } data = cleanHeartRate(data); plot = LinePlot(); plot.set(data); int n = data.size(); vector<float> t = mult(1./60, range(0, n)); vector<float> freq = range(bpmToHz(40), bpmToHz(1), bpmToHz(80)); vector<float> lombData = lomb(t, data, freq); analysis = LinePlot(); analysis.set(lombData); }
void lomb_api(const mxArray *prhs[4], const mxArray *plhs[3]) { emxArray_real_T *t; emxArray_real_T *h; emxArray_real_T *f; emxArray_real_T *P; emxArray_real_T *prob; real_T ofac; real_T hifac; emlrtStack st = { NULL, NULL, NULL }; st.tls = emlrtRootTLSGlobal; emlrtHeapReferenceStackEnterFcnR2012b(&st); emxInit_real_T(&st, &t, 1, true); emxInit_real_T(&st, &h, 1, true); emxInit_real_T(&st, &f, 1, true); emxInit_real_T(&st, &P, 1, true); emxInit_real_T(&st, &prob, 1, true); prhs[0] = emlrtProtectR2012b(prhs[0], 0, false, -1); prhs[1] = emlrtProtectR2012b(prhs[1], 1, false, -1); /* Marshall function inputs */ emlrt_marshallIn(&st, emlrtAlias(prhs[0]), "t", t); emlrt_marshallIn(&st, emlrtAlias(prhs[1]), "h", h); ofac = g_emlrt_marshallIn(&st, emlrtAliasP(prhs[2]), "ofac"); hifac = g_emlrt_marshallIn(&st, emlrtAliasP(prhs[3]), "hifac"); /* Invoke the target function */ lomb(t, h, ofac, hifac, f, P, prob); /* Marshall function outputs */ plhs[0] = c_emlrt_marshallOut(f); plhs[1] = c_emlrt_marshallOut(P); plhs[2] = c_emlrt_marshallOut(prob); prob->canFreeData = false; emxFree_real_T(&prob); P->canFreeData = false; emxFree_real_T(&P); f->canFreeData = false; emxFree_real_T(&f); h->canFreeData = false; emxFree_real_T(&h); t->canFreeData = false; emxFree_real_T(&t); emlrtHeapReferenceStackLeaveFcnR2012b(&st); }