help with Compiling a mex-file
古いコメントを表示
hello Folks,
I downloaded a Matlab package for probabilistic modeling of circular data with mixtures of von Mises distributions.
please see this link
in the installation phase i have to do this :
- Clone or download this repository and add it to your MATLAB search path.
- Compile the *.mex-file located at @VonMisesMixture/private by browsing to that directory in MATLAB and running mex sampleVonMisesMex.c from the command line.
i didn't understand how to do the second step if any one can help
採用された回答
その他の回答 (2 件)
Abdelmalek Benaimeur
2019 年 6 月 3 日
1 件のコメント
Walter Roberson
2019 年 6 月 3 日
Hmmm, I do not know where they are expecting to get random() from. random() is not part of the C language standard. C++ has a header named "<random>" but none of the functions are named random()
Abdelmalek Benaimeur
2019 年 6 月 3 日
0 投票
5 件のコメント
Walter Roberson
2019 年 6 月 3 日
File a bug report with the author.
Walter Roberson
2019 年 6 月 4 日
I checked further. It turns out that random() is part of POSIX stdlib.h but not part of any ISO C stdlib.h up to and including C18 .
Therefore the code is valid on POSIX compliant systems, and might be valid on some Unix systems that are not POSIX certified, but is potentially not valid on MS Windows.
Juha Kuortti
2021 年 12 月 14 日
A little late, but you can also just modify the code in sampleVonMisesMex.c line 54:
srand( time(NULL) + clock() + random() );
to
srand( time(NULL) + clock());
This code initialises the random number generator ( function rand() later in the code) with only current time. In practice this should be sufficient, but for critical work you should consider something not temporally monotonic.
Richard Cui
2023 年 9 月 13 日
Modify random() to rand(), which will do the work.
Walter Roberson
2023 年 9 月 13 日
time() returns a time_t (data type not specified by C standard, but often some form of integer)
clock() returns a clock_t (data type not specified by C standard, but often some form of integer)
random() returns an int (not a long int)
The sum of those three is not well defined in type.
srand() requires an unsigned int parameter.
It is not obvious that adding those three types gives an appropriate parameter for srand()
カテゴリ
ヘルプ センター および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!