-
Notifications
You must be signed in to change notification settings - Fork 0
/
faq-matlab
59 lines (48 loc) · 1.71 KB
/
faq-matlab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
We make the standard dll from C code, in addition we add:
/ Делаем стандартную dll из C кода, кроме того добавляем:
#include "mex.h"
void __cdecl mexFunction ( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] );
// mexFunction - функция понятная матлабовскому компилятору, аналог функции main
void mexFunction ( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] )
{
int i;
int ok = 1;
double *d;
memset(plhs, nlhs, 0);
// magic
if (7 == nrhs) {
double m = 0.0;
int ind = 0;
double *input = malloc(sizeof *input * nlhs);
if (NULL == input) return;
for (i = 0; i < nrhs; i++) {
ok = 0;
if (mxIsDouble(prhs[i])) {
ok = 1;
d = mxGetPr(prhs[i]);
input[i] = *d;
}
}
if (ok) {
StatNeuroResultsRAVM(input, &ind, &m);
//if (good)
plhs[0] = mxCreateDoubleScalar(m);
plhs[1] = mxCreateDoubleScalar(ind+1);
//nlhs = 2;
}
free(input);
}
return;
}
//
// int nlhs (количество ВЫХодных параметров) - number of outputs
// int nrhs (количество ВХодных параметров) - number of inputs
// Сами параметры передаются в массивах
// plhs (ВЫХодные параметры) - array of outputs
// prhs (ВХодные параметры) - array of inputs
In Mathlab (!) we compile / В матлабе(!) компилируем:
mex StatNeuroResultsRAVM.c
Then you can call the function / После чего можно вызывать функцию:
[x,y]=StatNeuroResultsRAVM(1,1,1,1,1,1,1)
x,y - выходные (output)
1,1,1,1,1,1,1 - входные (input).