# mtR

mtR generates the same random numbers produced by R software with Mersenne Twister mt19937ar

## Syntax

• rn =mtR(n, distrib, Rstate)example
• [rn , varargout]=mtR(___)example

## Description

This function ensures that uniformly or normally distributed pseudorandom numbers, generated in R and MATLAB using the Mersenne Twister algorithm mt19937ar, are identical. In the R community the problem is discussed (but only partially addressed) in the package 'randtoolbox', available in CRAN.

 rn =mtR(n, distrib, Rstate) mtR with all the default options.

 [rn , varargout] =mtR(___) Example where the distributiion is specified (0 for uniform).

## Examples

expand all

### mtR with all the default options.

Code for both MATLAB and R.

% R SIDE: display in the MATLAB command window
%         the strings to execute in R
Rstring = ['EXECUTE THE FOLLOWING IN R AND COMPARE RESULTS' char(10) char(10) ...
'RNGkind("Mersenne-Twister") # set "Mersenne-Twister" "Inversion"' char(10)...
'set.seed(0)' char(10)...
'state = .Random.seed' char(10) ...
char(10)...
'runif(5)' char(10)...
'# [1] 0.8966972 0.2655087 0.3721239 0.5728534 0.9082078' char(10)'];
disp(Rstring);
% MATLAB SIDE:
clear all; close all;
m = 'MATLAB: ';
r = 'R:      ';
expectedRes = [0.8966972 0.2655087 0.3721239 0.5728534 0.9082078]';
% 5 random numbers from a uniform distribution in [0 1].
rn = mtR(5);
sprintf('%s %0.7f  ',m,rn)
sprintf('%s %0.7f  ',r,[0.8966972 0.2655087 0.3721239 0.5728534 0.9082078])
assert(isequal(round(rn,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')
EXECUTE THE FOLLOWING IN R AND COMPARE RESULTS

RNGkind("Mersenne-Twister") # set "Mersenne-Twister" "Inversion"
set.seed(0)
state = .Random.seed

runif(5)
# [1] 0.8966972 0.2655087 0.3721239 0.5728534 0.9082078

ans =

'MATLAB:  0.8966972  2.655087e-01 0.3721239  5.728534e-01 0.9082078  '

ans =

'R:       0.8966972  2.655087e-01 0.3721239  5.728534e-01 0.9082078  '



### Example where the distributiion is specified (0 for uniform).

m = 'MATLAB: ';
r = 'R:      ';
rn = mtR(5,0);
expectedRes=[0.8966972 0.2655087 0.3721239 0.5728534 0.9082078]';
sprintf('%s %0.7f  ',m,rn)
sprintf('%s %0.7f  ',r,[0.8966972 0.2655087 0.3721239 0.5728534 0.9082078])
assert(isequal(round(rn,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')
ans =

'MATLAB:  0.8966972  2.655087e-01 0.3721239  5.728534e-01 0.9082078  '

ans =

'R:       0.8966972  2.655087e-01 0.3721239  5.728534e-01 0.9082078  '



## Related Examples

expand all

### Example with the default stream.

The default stream is associated to a seed equal to 0.

m = 'MATLAB: ';
r = 'R:      ';
rn = mtR(5,[],0);
expectedRes=[0.8966972 0.2655087 0.3721239 0.5728534 0.9082078]';
sprintf('%s %0.7f  ',m,rn)
sprintf('%s %0.7f  ',r,[0.8966972 0.2655087 0.3721239 0.5728534 0.9082078])
assert(isequal(round(rn,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')

### Distribution specfied with the triple array.

m = 'MATLAB: ';
r = 'R:      ';
numRandomNumbers=5;
rn = mtR(numRandomNumbers,[0,0,1]);
expectedRes=[0.8966972 0.2655087 0.3721239 0.5728534 0.9082078]';
sprintf('%s %0.7f  ',m,rn)
sprintf('%s %0.7f  ',r,[0.8966972 0.2655087 0.3721239 0.5728534 0.9082078])
assert(isequal(round(rn,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')

### Random numbers from a standard normal distribution.

m = 'MATLAB: ';
r = 'R:      ';
numRandomNumbers=5;
rn = mtR(numRandomNumbers,1);
expectedRes=[1.2629543 -0.3262334 1.3297993 1.2724293 0.4146414]';
sprintf('%s %0.7f   ',m,rn)
sprintf('%s %0.7f   ',r,[1.2629543 -0.3262334 1.3297993 1.2724293 0.4146414])
assert(isequal(round(rn,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')

### Random numbers from a uniform distribution in [3 7].

m = 'MATLAB: ';
r = 'R:      ';
numRandomNumbers=5;
% (runif(numRandomNumbers,3,7))
rn = mtR(numRandomNumbers,[0,3,7]);
expectedRes=[6.586789 4.062035 4.488496 5.291413 6.632831]';
sprintf('%s %0.7f   ',m,rn)
sprintf('%s %0.7f   ',r,[6.586789 4.062035 4.488496 5.291413 6.632831])
assert(isequal(round(rn,6), round(expectedRes,6)), 'Error: MATLAB did not output the same random values as R!')

### Random numbers from a normal distribution with mean=2 and std=15.

m = 'MATLAB: ';
r = 'R:      ';
numRandomNumbers=5;
% rnorm(numRandomNumbers,2,15)
rn = mtR(numRandomNumbers,[1,2,15]);
expectedRes=[20.944314 -2.893500 21.946989 21.086440  8.219622]';
sprintf('%s %0.7f   ',m,rn)
sprintf('%s %0.7f   ',r,[20.944314 -2.893500 21.946989 21.086440  8.219622])
assert(isequal(round(rn,6), round(expectedRes,6)), 'Error: MATLAB did not output the same random values as R!')

### Generate uniform numbers in R and MATLAB, but with seed <> 0.

Code for both MATLAB and R.

clear all; close all;
% R SIDE: display in the MATLAB command window the command strings to
%         execute in R
Rstring = ['EXECUTE THE FOLLOWING IN R AND COMPARE RESULTS' char(10) char(10) ...
'RNGkind("Mersenne-Twister")' char(10)...
'set.seed(12345)' char(10)...
'state = .Random.seed   # TO BE PASSED TO mtR (state option) in MATLAB' char(10) ...
char(10)...
'runif(5)' char(10)...
'# [1] 0.7209039 0.8757732 0.7609823 0.8861246 0.4564810' char(10) ...
char(10)...
'set.seed(12345)' char(10)...
'rnorm(5)' char(10)...
'# [1] 0.5855288  0.7094660 -0.1093033 -0.4534972  0.6058875'];
disp(Rstring);
% MATLAB SIDE:
%
m = 'MATLAB: ';
r = 'R:      ';
% 5 random numbers from a [0 1]-uniform distributiion, but seed=12345
% state taken from R
stateR12345 = [403 , 624 , 1638542565 , 108172386 , -1884566405 , -1838154368 , -250773631 , 919185230 , -1001918601 , -1002779316 , -321961507 , 1781331706 , 1166440499 , -117712936 , 58314745 , -938201242 , 1844978351 , -869947100 , 216221141 , 576699538 , 533687019 , 1819381040 , 675905393 , 2110048894 , 2136771815 , 1026265084 , -1037166387 , -285653718 , 1263109283 , -1975616120 , 1576168937 , -123742058 , 244715039 , 1526718932 , -1087137083 , 1442050242 , 676570459 , 800852192 , -823755935 , -566904402 , 1696695895 , 906100396 , 1479781309 , -321511590 , -1503089389 , 1068470072 , 2031323097 , 2053295558 , -749218417 , -2000861564 , 1655319477 , -768462606 , 262110155 , 399143056 , -983338159 , -1865452322 , -202515513 , 1164515676 , 80673453 , 1462142346 , 1143665027 , -1238758168 , 255598025 , 1584402166 , 1601468671 , -748103884 , 1964374181 , -656573150 , 1708781115 , -1898462144 , 469722945 , -888865778 , -807891657 , -53747700 , -1448147555 , -905087046 , -208186893 , 289994392 , -2104807495 , -895837146 , -1276970897 , -1949461532 , -133824107 , -327625390 , 1424620715 , -572587024 , 45700913 , -284602562 , 850959015 , -1739238724 , -1539126131 , -1167198742 , -713765277 , -1419293624 , -857752151 , 695563606 , -1621470241 , -2055832428 , 1623803525 , 4667778 , 276211483 , -593809504 , -1185922271 , -1144033682 , 1545929751 , -1359974036 , -1111928963 , -1511325670 , -867539245 , -979366408 , 1876477849 , 1515428486 , 777096015 , -961638076 , -2006005899 , -1471436366 , 1172761995 , -1584969904 , 2135108369 , 2097830302 , 24430983 , -498582500 , 453086829 , 1122473546 , -329311421 , 936262568 , 1691700617 , -515372106 , 452959935 , 947966452 , -1681554331 , 1229530594 , -1939746821 , 836651776 , -2083451135 , 992809166 , -1111561481 , -1899515188 , 751470941 , -1333348230 , -340137037 , 546100568 , 217337721 , 388352230 , 1029410351 , 1454915236 , 190610773 , 1220718098 , -724677013 , 832256688 , -705106191 , -345336834 , -2116392857 , 2073679228 , -1618788275 , -1498716502 , -1843275741 , -1791567096 , 555011433 , 1501549078 , -82028129 , -538978476 , 2072162885 , 1023099458 , -640456485 , -1820780960 , 1417267937 , -1615469778 , 73286103 , -1968593876 , 1264235325 , -1510432550 , 689823891 , 1374112952 , -1579825319 , 984164166 , -1212612337 , -2059232252 , -1270406347 , 485876338 , -1881661621 , 1223876112 , -1647140143 , -1228800418 , 832665415 , 1755455196 , 608166445 , 668034826 , -336263933 , 1769548392 , -946455223 , -1313552266 , 1147700351 , -1695839052 , -1854353371 , 1886752418 , -1794936389 , -230452800 , 4355777 , 201450894 , -1682241353 , 1022248332 , 702663965 , -833046214 , 2007909747 , -175672296 , -227201223 , 1249228198 , 1344398319 , -945444508 , -223954667 , 2147305170 , -1589878741 , -1905905296 , 1774732977 , 665360574 , -360581593 , 1505302588 , 1471116301 , -1804494998 , 990945763 , -965924408 , -1705927383 , 1434382038 , -677634209 , -1258556908 , -1423974907 , -2066740478 , -165025125 , 722844960 , 1478693537 , 1856575470 , 1267548055 , -336750868 , -1797794051 , -37813862 , -425518509 , 323308408 , 1053460249 , 404976646 , -1790036273 , -1086757180 , 1911766773 , -655303886 , -818736885 , -1798490928 , -925771119 , 1387684638 , -499915513 , -1422474852 , -1538656787 , 1185150922 , -592662845 , 703256872 , 1463741705 , -59357898 , 1903110719 , -1519843468 , -772809755 , 656586594 , -780217477 , 113744000 , 689151617 , -2109506994 , 931980919 , -1979738036 , 347394269 , -1807517190 , -1590403277 , 519623384 , 1120784121 , -1052089754 , -235538001 , 961926180 , 430224597 , -1696030830 , 2079601131 , -620763088 , 1172790897 , 411262334 , -1435548697 , 1702042364 , 814180301 , 612403242 , 1241590691 , 2110404744 , 945171689 , -1439511658 , -1432771297 , 260754644 , 1264634309 , 277189570 , -1757795237 , 976298976 , 1007426145 , -848753490 , -546177705 , -1250145876 , -302990659 , 2113806938 , -291892205 , -126219720 , 913770201 , -1350401850 , -1395577713 , 793964932 , 221452981 , 1157403634 , -1514683701 , -875148400 , 1744884305 , 631736286 , 820777671 , 1019618396 , -555759187 , -1608562550 , 407246979 , 400771048 , -208708407 , -1370717706 , -137129985 , -1028046284 , -1729452123 , 101752866 , 1402205499 , 1714052928 , 1443137089 , -1565405426 , 519341111 , -1195660532 , 553882781 , 856095418 , 839661811 , -341773928 , -843174215 , -1738289370 , -392704145 , -964116764 , -1407815531 , 1648670802 , -424295509 , -1104650512 , -1307167183 , -222633410 , -1084075609 , -1853366852 , 1305156493 , -1214760726 , -122456733 , -1173485752 , -1159562071 , -1537513386 , -1445664033 , -1169397868 , 2013623685 , -656679806 , -1362874853 , 395004576 , 938795553 , 548782446 , 768375575 , -1978286996 , 1785028221 , -1217002726 , -356332077 , -1337620232 , 949700249 , 2105953670 , -1543380401 , 1347370052 , -1849248139 , -1982264142 , 1965438091 , -187817392 , -1558214127 , -1001034594 , -74841977 , 1880114972 , -675193491 , -184329910 , -1199488445 , -1843235160 , 1011321993 , 1945599670 , -313150017 , 496778484 , -500616347 , 1711229154 , -318580997 , -953424384 , -1630196223 , 839705550 , -1615732233 , -874349108 , 1116608605 , -1687995526 , -1275735373 , 1782567000 , 587615865 , -1400767514 , -1178114769 , 1241409956 , -1782846379 , 1590792466 , 591467883 , -1633708624 , -1240150543 , -1425070338 , -417652889 , -1867030404 , -1824878771 , 1853401514 , 1088913187 , 972592648 , -1581872023 , 1354286358 , -888278881 , 1073791572 , 214819141 , -1768757950 , -293081125 , -639356576 , 1134389729 , -1924188626 , 1683798231 , -864424148 , -571096515 , -85548070 , 1155352467 , -1452816456 , -1258863015 , -1091642810 , -526362609 , 1559119620 , -881978827 , -1874442894 , 1597924939 , -696993520 , 1642987985 , -2088758946 , -540168633 , 1473587676 , 1387180333 , -972019190 , -1759630333 , -1217895064 , -1859683255 , -1170785418 , 666213247 , -1596852300 , 1768652581 , 1605284258 , 797669563 , -1601426240 , -616196671 , -1256933234 , -947585097 , -2043408244 , 756309021 , 2115517498 , 1890659443 , 1771400984 , -1838797255 , -1704662874 , -1421559057 , 1584845924 , -2108348395 , -649123374 , 861284139 , -1557820304 , 430122417 , -163566658 , -1621512921 , -708730052 , -1533689075 , 702667370 , -597866269 , 2085217480 , 747789353 , 2081087958 , -1006324129 , -345514732 , -1518727931 , -1033196030 , -934973029 , 1476122656 , 382054817 , -134911250 , 1893906071 , -1620516372 , -597563907 , 1494221978 , 648642899 , 312526456 , -615840231 , 1887184646 , -2006151729 , 1341133252 , 1172909557 , 17055282 , 1170233355 , -141946928 , 1277966737 , 2011657758 , 997661703 , -959132516 , -748174099 , 1409661642 , 1306318275 , 1718948904 , 300887049 , -1379157962 , 1018380607 , -149261708 , -1435399451 , -874587550 , 1827527291 , 688599936 , -1558856319 , 1888046414 , 1680727415 , 1785750348 , 1414946781 , 1273363706 , 1912489523 , 2019675608 , 731762169 , -1093888666 , -1026568017 , 1588723492 , -576576555 , -629308782 , -659228437 , -1300610256 , 1686191473 , 1225650302 , 635304679 , -1821989380 , -442714419 , -1970025686 , 1154798243 , -1077808248 , 1530260457 , -1290682730 , 175717407 , -951994412 , -1647707963 , -1792854334 , 1841083227 , 680672992 , 690862433 , 90726318 , 18773079 , -442329940 , -1184249411 , -1565383334 , 2045213459 , -625965768 , -1688828455 , 1324233670 , -2128182385 , -468411260 , 1291323829 , 1154676466 , -898889269 , -1630656880 , -912641711 , 1984666334 , 742803911 , 1338978140 , -1649633107 , -1616639094 , 914177923 , 1040745192 , -1637966903 , 997520630 , -2112968961 , -1959416524 , -520399195 , 1129300770 , -1226179525 , 1466497600 , 1308992833 , 1764401678 , 57441079 , -1151896052 , -334224483 , 898399674 , -2120409101 , -446370664 , -1100141127 , 913900070 , -970414481 , 1701833188 , -748494955 , 723295058 , -1793226069 , 1935522288 , -563145423 , -667388610 , 2020083879 , -1134139204 , 2047830669 , -246514710 , -1274143645 , 52478536 , -312394839 , 1116560214 , -735346209 , -1639034220 , 293446789 , 125599618 , -793922277 , -1570282080 , -1298824927 , 443028590 , -2100301289 , 1105659756 , -1999803011 , 1754072602 , -396938029 , -1336474632 , -1529231975 , -687538042 , 1888368975 , -1810110652 ];
Rstate = typecast(int32(stateR12345),'int32');
rn1 = mtR(5,0,Rstate);
rn2 = mtR(5,0,12345);
expectedRes=[0.7209039 0.8757732 0.7609823 0.8861246 0.4564810]';
sprintf('%s %0.7f  ',m,rn1)
disp('     input: seed')
sprintf('%s %0.7f  ',m,rn2)
disp('     input: R state as int32')
sprintf('%s %0.7f  ',r,[0.7209039 0.8757732 0.7609823 0.8861246 0.4564810])
assert(isequal(round(rn1,7), round(rn2,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')
% 5 random numbers from a 0-1 normal distribution, but seed=12345
stateR12345 = [403 , 624 , 1638542565 , 108172386 , -1884566405 , -1838154368 , -250773631 , 919185230 , -1001918601 , -1002779316 , -321961507 , 1781331706 , 1166440499 , -117712936 , 58314745 , -938201242 , 1844978351 , -869947100 , 216221141 , 576699538 , 533687019 , 1819381040 , 675905393 , 2110048894 , 2136771815 , 1026265084 , -1037166387 , -285653718 , 1263109283 , -1975616120 , 1576168937 , -123742058 , 244715039 , 1526718932 , -1087137083 , 1442050242 , 676570459 , 800852192 , -823755935 , -566904402 , 1696695895 , 906100396 , 1479781309 , -321511590 , -1503089389 , 1068470072 , 2031323097 , 2053295558 , -749218417 , -2000861564 , 1655319477 , -768462606 , 262110155 , 399143056 , -983338159 , -1865452322 , -202515513 , 1164515676 , 80673453 , 1462142346 , 1143665027 , -1238758168 , 255598025 , 1584402166 , 1601468671 , -748103884 , 1964374181 , -656573150 , 1708781115 , -1898462144 , 469722945 , -888865778 , -807891657 , -53747700 , -1448147555 , -905087046 , -208186893 , 289994392 , -2104807495 , -895837146 , -1276970897 , -1949461532 , -133824107 , -327625390 , 1424620715 , -572587024 , 45700913 , -284602562 , 850959015 , -1739238724 , -1539126131 , -1167198742 , -713765277 , -1419293624 , -857752151 , 695563606 , -1621470241 , -2055832428 , 1623803525 , 4667778 , 276211483 , -593809504 , -1185922271 , -1144033682 , 1545929751 , -1359974036 , -1111928963 , -1511325670 , -867539245 , -979366408 , 1876477849 , 1515428486 , 777096015 , -961638076 , -2006005899 , -1471436366 , 1172761995 , -1584969904 , 2135108369 , 2097830302 , 24430983 , -498582500 , 453086829 , 1122473546 , -329311421 , 936262568 , 1691700617 , -515372106 , 452959935 , 947966452 , -1681554331 , 1229530594 , -1939746821 , 836651776 , -2083451135 , 992809166 , -1111561481 , -1899515188 , 751470941 , -1333348230 , -340137037 , 546100568 , 217337721 , 388352230 , 1029410351 , 1454915236 , 190610773 , 1220718098 , -724677013 , 832256688 , -705106191 , -345336834 , -2116392857 , 2073679228 , -1618788275 , -1498716502 , -1843275741 , -1791567096 , 555011433 , 1501549078 , -82028129 , -538978476 , 2072162885 , 1023099458 , -640456485 , -1820780960 , 1417267937 , -1615469778 , 73286103 , -1968593876 , 1264235325 , -1510432550 , 689823891 , 1374112952 , -1579825319 , 984164166 , -1212612337 , -2059232252 , -1270406347 , 485876338 , -1881661621 , 1223876112 , -1647140143 , -1228800418 , 832665415 , 1755455196 , 608166445 , 668034826 , -336263933 , 1769548392 , -946455223 , -1313552266 , 1147700351 , -1695839052 , -1854353371 , 1886752418 , -1794936389 , -230452800 , 4355777 , 201450894 , -1682241353 , 1022248332 , 702663965 , -833046214 , 2007909747 , -175672296 , -227201223 , 1249228198 , 1344398319 , -945444508 , -223954667 , 2147305170 , -1589878741 , -1905905296 , 1774732977 , 665360574 , -360581593 , 1505302588 , 1471116301 , -1804494998 , 990945763 , -965924408 , -1705927383 , 1434382038 , -677634209 , -1258556908 , -1423974907 , -2066740478 , -165025125 , 722844960 , 1478693537 , 1856575470 , 1267548055 , -336750868 , -1797794051 , -37813862 , -425518509 , 323308408 , 1053460249 , 404976646 , -1790036273 , -1086757180 , 1911766773 , -655303886 , -818736885 , -1798490928 , -925771119 , 1387684638 , -499915513 , -1422474852 , -1538656787 , 1185150922 , -592662845 , 703256872 , 1463741705 , -59357898 , 1903110719 , -1519843468 , -772809755 , 656586594 , -780217477 , 113744000 , 689151617 , -2109506994 , 931980919 , -1979738036 , 347394269 , -1807517190 , -1590403277 , 519623384 , 1120784121 , -1052089754 , -235538001 , 961926180 , 430224597 , -1696030830 , 2079601131 , -620763088 , 1172790897 , 411262334 , -1435548697 , 1702042364 , 814180301 , 612403242 , 1241590691 , 2110404744 , 945171689 , -1439511658 , -1432771297 , 260754644 , 1264634309 , 277189570 , -1757795237 , 976298976 , 1007426145 , -848753490 , -546177705 , -1250145876 , -302990659 , 2113806938 , -291892205 , -126219720 , 913770201 , -1350401850 , -1395577713 , 793964932 , 221452981 , 1157403634 , -1514683701 , -875148400 , 1744884305 , 631736286 , 820777671 , 1019618396 , -555759187 , -1608562550 , 407246979 , 400771048 , -208708407 , -1370717706 , -137129985 , -1028046284 , -1729452123 , 101752866 , 1402205499 , 1714052928 , 1443137089 , -1565405426 , 519341111 , -1195660532 , 553882781 , 856095418 , 839661811 , -341773928 , -843174215 , -1738289370 , -392704145 , -964116764 , -1407815531 , 1648670802 , -424295509 , -1104650512 , -1307167183 , -222633410 , -1084075609 , -1853366852 , 1305156493 , -1214760726 , -122456733 , -1173485752 , -1159562071 , -1537513386 , -1445664033 , -1169397868 , 2013623685 , -656679806 , -1362874853 , 395004576 , 938795553 , 548782446 , 768375575 , -1978286996 , 1785028221 , -1217002726 , -356332077 , -1337620232 , 949700249 , 2105953670 , -1543380401 , 1347370052 , -1849248139 , -1982264142 , 1965438091 , -187817392 , -1558214127 , -1001034594 , -74841977 , 1880114972 , -675193491 , -184329910 , -1199488445 , -1843235160 , 1011321993 , 1945599670 , -313150017 , 496778484 , -500616347 , 1711229154 , -318580997 , -953424384 , -1630196223 , 839705550 , -1615732233 , -874349108 , 1116608605 , -1687995526 , -1275735373 , 1782567000 , 587615865 , -1400767514 , -1178114769 , 1241409956 , -1782846379 , 1590792466 , 591467883 , -1633708624 , -1240150543 , -1425070338 , -417652889 , -1867030404 , -1824878771 , 1853401514 , 1088913187 , 972592648 , -1581872023 , 1354286358 , -888278881 , 1073791572 , 214819141 , -1768757950 , -293081125 , -639356576 , 1134389729 , -1924188626 , 1683798231 , -864424148 , -571096515 , -85548070 , 1155352467 , -1452816456 , -1258863015 , -1091642810 , -526362609 , 1559119620 , -881978827 , -1874442894 , 1597924939 , -696993520 , 1642987985 , -2088758946 , -540168633 , 1473587676 , 1387180333 , -972019190 , -1759630333 , -1217895064 , -1859683255 , -1170785418 , 666213247 , -1596852300 , 1768652581 , 1605284258 , 797669563 , -1601426240 , -616196671 , -1256933234 , -947585097 , -2043408244 , 756309021 , 2115517498 , 1890659443 , 1771400984 , -1838797255 , -1704662874 , -1421559057 , 1584845924 , -2108348395 , -649123374 , 861284139 , -1557820304 , 430122417 , -163566658 , -1621512921 , -708730052 , -1533689075 , 702667370 , -597866269 , 2085217480 , 747789353 , 2081087958 , -1006324129 , -345514732 , -1518727931 , -1033196030 , -934973029 , 1476122656 , 382054817 , -134911250 , 1893906071 , -1620516372 , -597563907 , 1494221978 , 648642899 , 312526456 , -615840231 , 1887184646 , -2006151729 , 1341133252 , 1172909557 , 17055282 , 1170233355 , -141946928 , 1277966737 , 2011657758 , 997661703 , -959132516 , -748174099 , 1409661642 , 1306318275 , 1718948904 , 300887049 , -1379157962 , 1018380607 , -149261708 , -1435399451 , -874587550 , 1827527291 , 688599936 , -1558856319 , 1888046414 , 1680727415 , 1785750348 , 1414946781 , 1273363706 , 1912489523 , 2019675608 , 731762169 , -1093888666 , -1026568017 , 1588723492 , -576576555 , -629308782 , -659228437 , -1300610256 , 1686191473 , 1225650302 , 635304679 , -1821989380 , -442714419 , -1970025686 , 1154798243 , -1077808248 , 1530260457 , -1290682730 , 175717407 , -951994412 , -1647707963 , -1792854334 , 1841083227 , 680672992 , 690862433 , 90726318 , 18773079 , -442329940 , -1184249411 , -1565383334 , 2045213459 , -625965768 , -1688828455 , 1324233670 , -2128182385 , -468411260 , 1291323829 , 1154676466 , -898889269 , -1630656880 , -912641711 , 1984666334 , 742803911 , 1338978140 , -1649633107 , -1616639094 , 914177923 , 1040745192 , -1637966903 , 997520630 , -2112968961 , -1959416524 , -520399195 , 1129300770 , -1226179525 , 1466497600 , 1308992833 , 1764401678 , 57441079 , -1151896052 , -334224483 , 898399674 , -2120409101 , -446370664 , -1100141127 , 913900070 , -970414481 , 1701833188 , -748494955 , 723295058 , -1793226069 , 1935522288 , -563145423 , -667388610 , 2020083879 , -1134139204 , 2047830669 , -246514710 , -1274143645 , 52478536 , -312394839 , 1116560214 , -735346209 , -1639034220 , 293446789 , 125599618 , -793922277 , -1570282080 , -1298824927 , 443028590 , -2100301289 , 1105659756 , -1999803011 , 1754072602 , -396938029 , -1336474632 , -1529231975 , -687538042 , 1888368975 , -1810110652 ];
Rstate = typecast(int32(stateR12345),'int32');
rn1 = mtR(5,1,Rstate);
rn2 = mtR(5,1,12345);
expectedRes=[0.5855288  0.7094660 -0.1093033 -0.4534972  0.6058875]';
sprintf('%s %0.7f  ',m,rn1)
disp('     input: R state as int32')
sprintf('%s %0.7f  ',m,rn2)
disp('     input: seed')
sprintf('%s %0.7f  ',r,[0.5855288  0.7094660 -0.1093033 -0.4534972  0.6058875])
assert(isequal(round(rn1,7), round(rn2,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')

### The random stream in MATLAB format is returned as optional output.

Rstring = ['EXECUTE THE FOLLOWING IN R AND COMPARE RESULTS' char(10) char(10) ...
'RNGkind("Mersenne-Twister")' char(10)...
'set.seed(12345)' char(10)...
'state = .Random.seed   # TO BE PASSED TO mtR (state option) in MATLAB' char(10) ...
char(10)...
'runif(5)' char(10)...
'# [1] 0.7209039 0.8757732 0.7609823 0.8861246 0.4564810' char(10) ...
char(10)...
'set.seed(12345)' char(10)...
'rnorm(5)' char(10)...
'# [1] 0.5855288  0.7094660 -0.1093033 -0.4534972  0.6058875'];
disp(Rstring);
% MATLAB SIDE:
%
m = 'MATLAB: ';
r = 'R:      ';
% 5 random numbers from a [0 1]-uniform distributiion, but seed=12345
% state taken from R
stateR12345 = [403 , 624 , 1638542565 , 108172386 , -1884566405 , -1838154368 , -250773631 , 919185230 , -1001918601 , -1002779316 , -321961507 , 1781331706 , 1166440499 , -117712936 , 58314745 , -938201242 , 1844978351 , -869947100 , 216221141 , 576699538 , 533687019 , 1819381040 , 675905393 , 2110048894 , 2136771815 , 1026265084 , -1037166387 , -285653718 , 1263109283 , -1975616120 , 1576168937 , -123742058 , 244715039 , 1526718932 , -1087137083 , 1442050242 , 676570459 , 800852192 , -823755935 , -566904402 , 1696695895 , 906100396 , 1479781309 , -321511590 , -1503089389 , 1068470072 , 2031323097 , 2053295558 , -749218417 , -2000861564 , 1655319477 , -768462606 , 262110155 , 399143056 , -983338159 , -1865452322 , -202515513 , 1164515676 , 80673453 , 1462142346 , 1143665027 , -1238758168 , 255598025 , 1584402166 , 1601468671 , -748103884 , 1964374181 , -656573150 , 1708781115 , -1898462144 , 469722945 , -888865778 , -807891657 , -53747700 , -1448147555 , -905087046 , -208186893 , 289994392 , -2104807495 , -895837146 , -1276970897 , -1949461532 , -133824107 , -327625390 , 1424620715 , -572587024 , 45700913 , -284602562 , 850959015 , -1739238724 , -1539126131 , -1167198742 , -713765277 , -1419293624 , -857752151 , 695563606 , -1621470241 , -2055832428 , 1623803525 , 4667778 , 276211483 , -593809504 , -1185922271 , -1144033682 , 1545929751 , -1359974036 , -1111928963 , -1511325670 , -867539245 , -979366408 , 1876477849 , 1515428486 , 777096015 , -961638076 , -2006005899 , -1471436366 , 1172761995 , -1584969904 , 2135108369 , 2097830302 , 24430983 , -498582500 , 453086829 , 1122473546 , -329311421 , 936262568 , 1691700617 , -515372106 , 452959935 , 947966452 , -1681554331 , 1229530594 , -1939746821 , 836651776 , -2083451135 , 992809166 , -1111561481 , -1899515188 , 751470941 , -1333348230 , -340137037 , 546100568 , 217337721 , 388352230 , 1029410351 , 1454915236 , 190610773 , 1220718098 , -724677013 , 832256688 , -705106191 , -345336834 , -2116392857 , 2073679228 , -1618788275 , -1498716502 , -1843275741 , -1791567096 , 555011433 , 1501549078 , -82028129 , -538978476 , 2072162885 , 1023099458 , -640456485 , -1820780960 , 1417267937 , -1615469778 , 73286103 , -1968593876 , 1264235325 , -1510432550 , 689823891 , 1374112952 , -1579825319 , 984164166 , -1212612337 , -2059232252 , -1270406347 , 485876338 , -1881661621 , 1223876112 , -1647140143 , -1228800418 , 832665415 , 1755455196 , 608166445 , 668034826 , -336263933 , 1769548392 , -946455223 , -1313552266 , 1147700351 , -1695839052 , -1854353371 , 1886752418 , -1794936389 , -230452800 , 4355777 , 201450894 , -1682241353 , 1022248332 , 702663965 , -833046214 , 2007909747 , -175672296 , -227201223 , 1249228198 , 1344398319 , -945444508 , -223954667 , 2147305170 , -1589878741 , -1905905296 , 1774732977 , 665360574 , -360581593 , 1505302588 , 1471116301 , -1804494998 , 990945763 , -965924408 , -1705927383 , 1434382038 , -677634209 , -1258556908 , -1423974907 , -2066740478 , -165025125 , 722844960 , 1478693537 , 1856575470 , 1267548055 , -336750868 , -1797794051 , -37813862 , -425518509 , 323308408 , 1053460249 , 404976646 , -1790036273 , -1086757180 , 1911766773 , -655303886 , -818736885 , -1798490928 , -925771119 , 1387684638 , -499915513 , -1422474852 , -1538656787 , 1185150922 , -592662845 , 703256872 , 1463741705 , -59357898 , 1903110719 , -1519843468 , -772809755 , 656586594 , -780217477 , 113744000 , 689151617 , -2109506994 , 931980919 , -1979738036 , 347394269 , -1807517190 , -1590403277 , 519623384 , 1120784121 , -1052089754 , -235538001 , 961926180 , 430224597 , -1696030830 , 2079601131 , -620763088 , 1172790897 , 411262334 , -1435548697 , 1702042364 , 814180301 , 612403242 , 1241590691 , 2110404744 , 945171689 , -1439511658 , -1432771297 , 260754644 , 1264634309 , 277189570 , -1757795237 , 976298976 , 1007426145 , -848753490 , -546177705 , -1250145876 , -302990659 , 2113806938 , -291892205 , -126219720 , 913770201 , -1350401850 , -1395577713 , 793964932 , 221452981 , 1157403634 , -1514683701 , -875148400 , 1744884305 , 631736286 , 820777671 , 1019618396 , -555759187 , -1608562550 , 407246979 , 400771048 , -208708407 , -1370717706 , -137129985 , -1028046284 , -1729452123 , 101752866 , 1402205499 , 1714052928 , 1443137089 , -1565405426 , 519341111 , -1195660532 , 553882781 , 856095418 , 839661811 , -341773928 , -843174215 , -1738289370 , -392704145 , -964116764 , -1407815531 , 1648670802 , -424295509 , -1104650512 , -1307167183 , -222633410 , -1084075609 , -1853366852 , 1305156493 , -1214760726 , -122456733 , -1173485752 , -1159562071 , -1537513386 , -1445664033 , -1169397868 , 2013623685 , -656679806 , -1362874853 , 395004576 , 938795553 , 548782446 , 768375575 , -1978286996 , 1785028221 , -1217002726 , -356332077 , -1337620232 , 949700249 , 2105953670 , -1543380401 , 1347370052 , -1849248139 , -1982264142 , 1965438091 , -187817392 , -1558214127 , -1001034594 , -74841977 , 1880114972 , -675193491 , -184329910 , -1199488445 , -1843235160 , 1011321993 , 1945599670 , -313150017 , 496778484 , -500616347 , 1711229154 , -318580997 , -953424384 , -1630196223 , 839705550 , -1615732233 , -874349108 , 1116608605 , -1687995526 , -1275735373 , 1782567000 , 587615865 , -1400767514 , -1178114769 , 1241409956 , -1782846379 , 1590792466 , 591467883 , -1633708624 , -1240150543 , -1425070338 , -417652889 , -1867030404 , -1824878771 , 1853401514 , 1088913187 , 972592648 , -1581872023 , 1354286358 , -888278881 , 1073791572 , 214819141 , -1768757950 , -293081125 , -639356576 , 1134389729 , -1924188626 , 1683798231 , -864424148 , -571096515 , -85548070 , 1155352467 , -1452816456 , -1258863015 , -1091642810 , -526362609 , 1559119620 , -881978827 , -1874442894 , 1597924939 , -696993520 , 1642987985 , -2088758946 , -540168633 , 1473587676 , 1387180333 , -972019190 , -1759630333 , -1217895064 , -1859683255 , -1170785418 , 666213247 , -1596852300 , 1768652581 , 1605284258 , 797669563 , -1601426240 , -616196671 , -1256933234 , -947585097 , -2043408244 , 756309021 , 2115517498 , 1890659443 , 1771400984 , -1838797255 , -1704662874 , -1421559057 , 1584845924 , -2108348395 , -649123374 , 861284139 , -1557820304 , 430122417 , -163566658 , -1621512921 , -708730052 , -1533689075 , 702667370 , -597866269 , 2085217480 , 747789353 , 2081087958 , -1006324129 , -345514732 , -1518727931 , -1033196030 , -934973029 , 1476122656 , 382054817 , -134911250 , 1893906071 , -1620516372 , -597563907 , 1494221978 , 648642899 , 312526456 , -615840231 , 1887184646 , -2006151729 , 1341133252 , 1172909557 , 17055282 , 1170233355 , -141946928 , 1277966737 , 2011657758 , 997661703 , -959132516 , -748174099 , 1409661642 , 1306318275 , 1718948904 , 300887049 , -1379157962 , 1018380607 , -149261708 , -1435399451 , -874587550 , 1827527291 , 688599936 , -1558856319 , 1888046414 , 1680727415 , 1785750348 , 1414946781 , 1273363706 , 1912489523 , 2019675608 , 731762169 , -1093888666 , -1026568017 , 1588723492 , -576576555 , -629308782 , -659228437 , -1300610256 , 1686191473 , 1225650302 , 635304679 , -1821989380 , -442714419 , -1970025686 , 1154798243 , -1077808248 , 1530260457 , -1290682730 , 175717407 , -951994412 , -1647707963 , -1792854334 , 1841083227 , 680672992 , 690862433 , 90726318 , 18773079 , -442329940 , -1184249411 , -1565383334 , 2045213459 , -625965768 , -1688828455 , 1324233670 , -2128182385 , -468411260 , 1291323829 , 1154676466 , -898889269 , -1630656880 , -912641711 , 1984666334 , 742803911 , 1338978140 , -1649633107 , -1616639094 , 914177923 , 1040745192 , -1637966903 , 997520630 , -2112968961 , -1959416524 , -520399195 , 1129300770 , -1226179525 , 1466497600 , 1308992833 , 1764401678 , 57441079 , -1151896052 , -334224483 , 898399674 , -2120409101 , -446370664 , -1100141127 , 913900070 , -970414481 , 1701833188 , -748494955 , 723295058 , -1793226069 , 1935522288 , -563145423 , -667388610 , 2020083879 , -1134139204 , 2047830669 , -246514710 , -1274143645 , 52478536 , -312394839 , 1116560214 , -735346209 , -1639034220 , 293446789 , 125599618 , -793922277 , -1570282080 , -1298824927 , 443028590 , -2100301289 , 1105659756 , -1999803011 , 1754072602 , -396938029 , -1336474632 , -1529231975 , -687538042 , 1888368975 , -1810110652 ];
Rstate = typecast(int32(stateR12345),'int32');
rn1 = mtR(5,1,Rstate);
rn2 = mtR(5,1,12345);
[rn , MATLABstate] = mtR(5,1,Rstate);

### Simulation of multiple arrays of uniform random numbers.

Both MATLAB and R code.

clear all; close all;
Rstring = ['EXECUTE THE FOLLOWING IN R TO INITIATE THE SIMULATION' char(10) char(10) ...
'RNGkind("Mersenne-Twister") # set "Mersenne-Twister" "Inversion"' char(10)...
'set.seed(12345)' char(10)...
'state = .Random.seed' char(10) ...
char(10)...
'runif(5)' char(10)...
'for (i in 1:1000) {' char(10)...
'    rn=runif(5) ' char(10)...
'    if (i==1000){print(rn)}' char(10)...
'}' char(10) ...
];
disp(Rstring);
% MATLAB SIDE:
%
m = 'MATLAB: ';
r = 'R:      ';
% 5 random numbers from a uniform distribution in [0 1], seed 12345.
stateR12345 = [403 , 624 , 1638542565 , 108172386 , -1884566405 , -1838154368 , -250773631 , 919185230 , -1001918601 , -1002779316 , -321961507 , 1781331706 , 1166440499 , -117712936 , 58314745 , -938201242 , 1844978351 , -869947100 , 216221141 , 576699538 , 533687019 , 1819381040 , 675905393 , 2110048894 , 2136771815 , 1026265084 , -1037166387 , -285653718 , 1263109283 , -1975616120 , 1576168937 , -123742058 , 244715039 , 1526718932 , -1087137083 , 1442050242 , 676570459 , 800852192 , -823755935 , -566904402 , 1696695895 , 906100396 , 1479781309 , -321511590 , -1503089389 , 1068470072 , 2031323097 , 2053295558 , -749218417 , -2000861564 , 1655319477 , -768462606 , 262110155 , 399143056 , -983338159 , -1865452322 , -202515513 , 1164515676 , 80673453 , 1462142346 , 1143665027 , -1238758168 , 255598025 , 1584402166 , 1601468671 , -748103884 , 1964374181 , -656573150 , 1708781115 , -1898462144 , 469722945 , -888865778 , -807891657 , -53747700 , -1448147555 , -905087046 , -208186893 , 289994392 , -2104807495 , -895837146 , -1276970897 , -1949461532 , -133824107 , -327625390 , 1424620715 , -572587024 , 45700913 , -284602562 , 850959015 , -1739238724 , -1539126131 , -1167198742 , -713765277 , -1419293624 , -857752151 , 695563606 , -1621470241 , -2055832428 , 1623803525 , 4667778 , 276211483 , -593809504 , -1185922271 , -1144033682 , 1545929751 , -1359974036 , -1111928963 , -1511325670 , -867539245 , -979366408 , 1876477849 , 1515428486 , 777096015 , -961638076 , -2006005899 , -1471436366 , 1172761995 , -1584969904 , 2135108369 , 2097830302 , 24430983 , -498582500 , 453086829 , 1122473546 , -329311421 , 936262568 , 1691700617 , -515372106 , 452959935 , 947966452 , -1681554331 , 1229530594 , -1939746821 , 836651776 , -2083451135 , 992809166 , -1111561481 , -1899515188 , 751470941 , -1333348230 , -340137037 , 546100568 , 217337721 , 388352230 , 1029410351 , 1454915236 , 190610773 , 1220718098 , -724677013 , 832256688 , -705106191 , -345336834 , -2116392857 , 2073679228 , -1618788275 , -1498716502 , -1843275741 , -1791567096 , 555011433 , 1501549078 , -82028129 , -538978476 , 2072162885 , 1023099458 , -640456485 , -1820780960 , 1417267937 , -1615469778 , 73286103 , -1968593876 , 1264235325 , -1510432550 , 689823891 , 1374112952 , -1579825319 , 984164166 , -1212612337 , -2059232252 , -1270406347 , 485876338 , -1881661621 , 1223876112 , -1647140143 , -1228800418 , 832665415 , 1755455196 , 608166445 , 668034826 , -336263933 , 1769548392 , -946455223 , -1313552266 , 1147700351 , -1695839052 , -1854353371 , 1886752418 , -1794936389 , -230452800 , 4355777 , 201450894 , -1682241353 , 1022248332 , 702663965 , -833046214 , 2007909747 , -175672296 , -227201223 , 1249228198 , 1344398319 , -945444508 , -223954667 , 2147305170 , -1589878741 , -1905905296 , 1774732977 , 665360574 , -360581593 , 1505302588 , 1471116301 , -1804494998 , 990945763 , -965924408 , -1705927383 , 1434382038 , -677634209 , -1258556908 , -1423974907 , -2066740478 , -165025125 , 722844960 , 1478693537 , 1856575470 , 1267548055 , -336750868 , -1797794051 , -37813862 , -425518509 , 323308408 , 1053460249 , 404976646 , -1790036273 , -1086757180 , 1911766773 , -655303886 , -818736885 , -1798490928 , -925771119 , 1387684638 , -499915513 , -1422474852 , -1538656787 , 1185150922 , -592662845 , 703256872 , 1463741705 , -59357898 , 1903110719 , -1519843468 , -772809755 , 656586594 , -780217477 , 113744000 , 689151617 , -2109506994 , 931980919 , -1979738036 , 347394269 , -1807517190 , -1590403277 , 519623384 , 1120784121 , -1052089754 , -235538001 , 961926180 , 430224597 , -1696030830 , 2079601131 , -620763088 , 1172790897 , 411262334 , -1435548697 , 1702042364 , 814180301 , 612403242 , 1241590691 , 2110404744 , 945171689 , -1439511658 , -1432771297 , 260754644 , 1264634309 , 277189570 , -1757795237 , 976298976 , 1007426145 , -848753490 , -546177705 , -1250145876 , -302990659 , 2113806938 , -291892205 , -126219720 , 913770201 , -1350401850 , -1395577713 , 793964932 , 221452981 , 1157403634 , -1514683701 , -875148400 , 1744884305 , 631736286 , 820777671 , 1019618396 , -555759187 , -1608562550 , 407246979 , 400771048 , -208708407 , -1370717706 , -137129985 , -1028046284 , -1729452123 , 101752866 , 1402205499 , 1714052928 , 1443137089 , -1565405426 , 519341111 , -1195660532 , 553882781 , 856095418 , 839661811 , -341773928 , -843174215 , -1738289370 , -392704145 , -964116764 , -1407815531 , 1648670802 , -424295509 , -1104650512 , -1307167183 , -222633410 , -1084075609 , -1853366852 , 1305156493 , -1214760726 , -122456733 , -1173485752 , -1159562071 , -1537513386 , -1445664033 , -1169397868 , 2013623685 , -656679806 , -1362874853 , 395004576 , 938795553 , 548782446 , 768375575 , -1978286996 , 1785028221 , -1217002726 , -356332077 , -1337620232 , 949700249 , 2105953670 , -1543380401 , 1347370052 , -1849248139 , -1982264142 , 1965438091 , -187817392 , -1558214127 , -1001034594 , -74841977 , 1880114972 , -675193491 , -184329910 , -1199488445 , -1843235160 , 1011321993 , 1945599670 , -313150017 , 496778484 , -500616347 , 1711229154 , -318580997 , -953424384 , -1630196223 , 839705550 , -1615732233 , -874349108 , 1116608605 , -1687995526 , -1275735373 , 1782567000 , 587615865 , -1400767514 , -1178114769 , 1241409956 , -1782846379 , 1590792466 , 591467883 , -1633708624 , -1240150543 , -1425070338 , -417652889 , -1867030404 , -1824878771 , 1853401514 , 1088913187 , 972592648 , -1581872023 , 1354286358 , -888278881 , 1073791572 , 214819141 , -1768757950 , -293081125 , -639356576 , 1134389729 , -1924188626 , 1683798231 , -864424148 , -571096515 , -85548070 , 1155352467 , -1452816456 , -1258863015 , -1091642810 , -526362609 , 1559119620 , -881978827 , -1874442894 , 1597924939 , -696993520 , 1642987985 , -2088758946 , -540168633 , 1473587676 , 1387180333 , -972019190 , -1759630333 , -1217895064 , -1859683255 , -1170785418 , 666213247 , -1596852300 , 1768652581 , 1605284258 , 797669563 , -1601426240 , -616196671 , -1256933234 , -947585097 , -2043408244 , 756309021 , 2115517498 , 1890659443 , 1771400984 , -1838797255 , -1704662874 , -1421559057 , 1584845924 , -2108348395 , -649123374 , 861284139 , -1557820304 , 430122417 , -163566658 , -1621512921 , -708730052 , -1533689075 , 702667370 , -597866269 , 2085217480 , 747789353 , 2081087958 , -1006324129 , -345514732 , -1518727931 , -1033196030 , -934973029 , 1476122656 , 382054817 , -134911250 , 1893906071 , -1620516372 , -597563907 , 1494221978 , 648642899 , 312526456 , -615840231 , 1887184646 , -2006151729 , 1341133252 , 1172909557 , 17055282 , 1170233355 , -141946928 , 1277966737 , 2011657758 , 997661703 , -959132516 , -748174099 , 1409661642 , 1306318275 , 1718948904 , 300887049 , -1379157962 , 1018380607 , -149261708 , -1435399451 , -874587550 , 1827527291 , 688599936 , -1558856319 , 1888046414 , 1680727415 , 1785750348 , 1414946781 , 1273363706 , 1912489523 , 2019675608 , 731762169 , -1093888666 , -1026568017 , 1588723492 , -576576555 , -629308782 , -659228437 , -1300610256 , 1686191473 , 1225650302 , 635304679 , -1821989380 , -442714419 , -1970025686 , 1154798243 , -1077808248 , 1530260457 , -1290682730 , 175717407 , -951994412 , -1647707963 , -1792854334 , 1841083227 , 680672992 , 690862433 , 90726318 , 18773079 , -442329940 , -1184249411 , -1565383334 , 2045213459 , -625965768 , -1688828455 , 1324233670 , -2128182385 , -468411260 , 1291323829 , 1154676466 , -898889269 , -1630656880 , -912641711 , 1984666334 , 742803911 , 1338978140 , -1649633107 , -1616639094 , 914177923 , 1040745192 , -1637966903 , 997520630 , -2112968961 , -1959416524 , -520399195 , 1129300770 , -1226179525 , 1466497600 , 1308992833 , 1764401678 , 57441079 , -1151896052 , -334224483 , 898399674 , -2120409101 , -446370664 , -1100141127 , 913900070 , -970414481 , 1701833188 , -748494955 , 723295058 , -1793226069 , 1935522288 , -563145423 , -667388610 , 2020083879 , -1134139204 , 2047830669 , -246514710 , -1274143645 , 52478536 , -312394839 , 1116560214 , -735346209 , -1639034220 , 293446789 , 125599618 , -793922277 , -1570282080 , -1298824927 , 443028590 , -2100301289 , 1105659756 , -1999803011 , 1754072602 , -396938029 , -1336474632 , -1529231975 , -687538042 , 1888368975 , -1810110652 ];
Rstate      = typecast(int32(stateR12345),'int32');
seed        = 12345;
rn1 = mtR(5, 0, Rstate);
expectedRes=[0.7209039 0.8757732 0.7609823 0.8861246 0.4564810]';
disp('Five random numbers generated in the first simulation step: ');
sprintf('%s %0.7f  ',m,rn1)
sprintf('%s %0.7f  ',r,[0.7209039 0.8757732 0.7609823 0.8861246 0.4564810])
assert(isequal(round(rn1,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')
% 1000 arrays of 5 random numbers from a uniform distribution in [0 1]
% generated while keeping the current MATLAB state (this is obtained
% by setting a negative Rstate)
for i=1:1000
rn2=mtR(5, 0, -123);
end
expectedRes=[0.18089266 0.18878981 0.72700354 0.03062528 0.58466682]';
disp('Five random numbers generated in the last of the 1000 simulation steps: ');
sprintf('%s %0.7f  ',m,rn2)
sprintf('%s %0.7f  ',r,[0.18089266 0.18878981 0.72700354 0.03062528 0.58466682])
assert(isequal(round(rn2,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')

### Simulation of multiple arrays of normal random numbers.

Both MATLAB and R code.

clear all; close all;
Rstring = ['EXECUTE THE FOLLOWING IN R TO INITIATE THE SIMULATION' char(10) char(10) ...
'RNGkind("Mersenne-Twister") # set "Mersenne-Twister" "Inversion"' char(10)...
'set.seed(12345)' char(10)...
'state = .Random.seed' char(10) ...
char(10)...
'rnorm(5)' char(10)...
'for (i in 1:1000) {' char(10)...
'    rn=rnorm(5) ' char(10)...
'    if (i==1000){print(rn)}' char(10)...
'}' char(10) ...
];
disp(Rstring);
% MATLAB SIDE:
%
m = 'MATLAB: ';
r = 'R:      ';
% 5 random numbers from a normal distribution in [0 1], seed 12345.
stateR12345 = [403 , 624 , 1638542565 , 108172386 , -1884566405 , -1838154368 , -250773631 , 919185230 , -1001918601 , -1002779316 , -321961507 , 1781331706 , 1166440499 , -117712936 , 58314745 , -938201242 , 1844978351 , -869947100 , 216221141 , 576699538 , 533687019 , 1819381040 , 675905393 , 2110048894 , 2136771815 , 1026265084 , -1037166387 , -285653718 , 1263109283 , -1975616120 , 1576168937 , -123742058 , 244715039 , 1526718932 , -1087137083 , 1442050242 , 676570459 , 800852192 , -823755935 , -566904402 , 1696695895 , 906100396 , 1479781309 , -321511590 , -1503089389 , 1068470072 , 2031323097 , 2053295558 , -749218417 , -2000861564 , 1655319477 , -768462606 , 262110155 , 399143056 , -983338159 , -1865452322 , -202515513 , 1164515676 , 80673453 , 1462142346 , 1143665027 , -1238758168 , 255598025 , 1584402166 , 1601468671 , -748103884 , 1964374181 , -656573150 , 1708781115 , -1898462144 , 469722945 , -888865778 , -807891657 , -53747700 , -1448147555 , -905087046 , -208186893 , 289994392 , -2104807495 , -895837146 , -1276970897 , -1949461532 , -133824107 , -327625390 , 1424620715 , -572587024 , 45700913 , -284602562 , 850959015 , -1739238724 , -1539126131 , -1167198742 , -713765277 , -1419293624 , -857752151 , 695563606 , -1621470241 , -2055832428 , 1623803525 , 4667778 , 276211483 , -593809504 , -1185922271 , -1144033682 , 1545929751 , -1359974036 , -1111928963 , -1511325670 , -867539245 , -979366408 , 1876477849 , 1515428486 , 777096015 , -961638076 , -2006005899 , -1471436366 , 1172761995 , -1584969904 , 2135108369 , 2097830302 , 24430983 , -498582500 , 453086829 , 1122473546 , -329311421 , 936262568 , 1691700617 , -515372106 , 452959935 , 947966452 , -1681554331 , 1229530594 , -1939746821 , 836651776 , -2083451135 , 992809166 , -1111561481 , -1899515188 , 751470941 , -1333348230 , -340137037 , 546100568 , 217337721 , 388352230 , 1029410351 , 1454915236 , 190610773 , 1220718098 , -724677013 , 832256688 , -705106191 , -345336834 , -2116392857 , 2073679228 , -1618788275 , -1498716502 , -1843275741 , -1791567096 , 555011433 , 1501549078 , -82028129 , -538978476 , 2072162885 , 1023099458 , -640456485 , -1820780960 , 1417267937 , -1615469778 , 73286103 , -1968593876 , 1264235325 , -1510432550 , 689823891 , 1374112952 , -1579825319 , 984164166 , -1212612337 , -2059232252 , -1270406347 , 485876338 , -1881661621 , 1223876112 , -1647140143 , -1228800418 , 832665415 , 1755455196 , 608166445 , 668034826 , -336263933 , 1769548392 , -946455223 , -1313552266 , 1147700351 , -1695839052 , -1854353371 , 1886752418 , -1794936389 , -230452800 , 4355777 , 201450894 , -1682241353 , 1022248332 , 702663965 , -833046214 , 2007909747 , -175672296 , -227201223 , 1249228198 , 1344398319 , -945444508 , -223954667 , 2147305170 , -1589878741 , -1905905296 , 1774732977 , 665360574 , -360581593 , 1505302588 , 1471116301 , -1804494998 , 990945763 , -965924408 , -1705927383 , 1434382038 , -677634209 , -1258556908 , -1423974907 , -2066740478 , -165025125 , 722844960 , 1478693537 , 1856575470 , 1267548055 , -336750868 , -1797794051 , -37813862 , -425518509 , 323308408 , 1053460249 , 404976646 , -1790036273 , -1086757180 , 1911766773 , -655303886 , -818736885 , -1798490928 , -925771119 , 1387684638 , -499915513 , -1422474852 , -1538656787 , 1185150922 , -592662845 , 703256872 , 1463741705 , -59357898 , 1903110719 , -1519843468 , -772809755 , 656586594 , -780217477 , 113744000 , 689151617 , -2109506994 , 931980919 , -1979738036 , 347394269 , -1807517190 , -1590403277 , 519623384 , 1120784121 , -1052089754 , -235538001 , 961926180 , 430224597 , -1696030830 , 2079601131 , -620763088 , 1172790897 , 411262334 , -1435548697 , 1702042364 , 814180301 , 612403242 , 1241590691 , 2110404744 , 945171689 , -1439511658 , -1432771297 , 260754644 , 1264634309 , 277189570 , -1757795237 , 976298976 , 1007426145 , -848753490 , -546177705 , -1250145876 , -302990659 , 2113806938 , -291892205 , -126219720 , 913770201 , -1350401850 , -1395577713 , 793964932 , 221452981 , 1157403634 , -1514683701 , -875148400 , 1744884305 , 631736286 , 820777671 , 1019618396 , -555759187 , -1608562550 , 407246979 , 400771048 , -208708407 , -1370717706 , -137129985 , -1028046284 , -1729452123 , 101752866 , 1402205499 , 1714052928 , 1443137089 , -1565405426 , 519341111 , -1195660532 , 553882781 , 856095418 , 839661811 , -341773928 , -843174215 , -1738289370 , -392704145 , -964116764 , -1407815531 , 1648670802 , -424295509 , -1104650512 , -1307167183 , -222633410 , -1084075609 , -1853366852 , 1305156493 , -1214760726 , -122456733 , -1173485752 , -1159562071 , -1537513386 , -1445664033 , -1169397868 , 2013623685 , -656679806 , -1362874853 , 395004576 , 938795553 , 548782446 , 768375575 , -1978286996 , 1785028221 , -1217002726 , -356332077 , -1337620232 , 949700249 , 2105953670 , -1543380401 , 1347370052 , -1849248139 , -1982264142 , 1965438091 , -187817392 , -1558214127 , -1001034594 , -74841977 , 1880114972 , -675193491 , -184329910 , -1199488445 , -1843235160 , 1011321993 , 1945599670 , -313150017 , 496778484 , -500616347 , 1711229154 , -318580997 , -953424384 , -1630196223 , 839705550 , -1615732233 , -874349108 , 1116608605 , -1687995526 , -1275735373 , 1782567000 , 587615865 , -1400767514 , -1178114769 , 1241409956 , -1782846379 , 1590792466 , 591467883 , -1633708624 , -1240150543 , -1425070338 , -417652889 , -1867030404 , -1824878771 , 1853401514 , 1088913187 , 972592648 , -1581872023 , 1354286358 , -888278881 , 1073791572 , 214819141 , -1768757950 , -293081125 , -639356576 , 1134389729 , -1924188626 , 1683798231 , -864424148 , -571096515 , -85548070 , 1155352467 , -1452816456 , -1258863015 , -1091642810 , -526362609 , 1559119620 , -881978827 , -1874442894 , 1597924939 , -696993520 , 1642987985 , -2088758946 , -540168633 , 1473587676 , 1387180333 , -972019190 , -1759630333 , -1217895064 , -1859683255 , -1170785418 , 666213247 , -1596852300 , 1768652581 , 1605284258 , 797669563 , -1601426240 , -616196671 , -1256933234 , -947585097 , -2043408244 , 756309021 , 2115517498 , 1890659443 , 1771400984 , -1838797255 , -1704662874 , -1421559057 , 1584845924 , -2108348395 , -649123374 , 861284139 , -1557820304 , 430122417 , -163566658 , -1621512921 , -708730052 , -1533689075 , 702667370 , -597866269 , 2085217480 , 747789353 , 2081087958 , -1006324129 , -345514732 , -1518727931 , -1033196030 , -934973029 , 1476122656 , 382054817 , -134911250 , 1893906071 , -1620516372 , -597563907 , 1494221978 , 648642899 , 312526456 , -615840231 , 1887184646 , -2006151729 , 1341133252 , 1172909557 , 17055282 , 1170233355 , -141946928 , 1277966737 , 2011657758 , 997661703 , -959132516 , -748174099 , 1409661642 , 1306318275 , 1718948904 , 300887049 , -1379157962 , 1018380607 , -149261708 , -1435399451 , -874587550 , 1827527291 , 688599936 , -1558856319 , 1888046414 , 1680727415 , 1785750348 , 1414946781 , 1273363706 , 1912489523 , 2019675608 , 731762169 , -1093888666 , -1026568017 , 1588723492 , -576576555 , -629308782 , -659228437 , -1300610256 , 1686191473 , 1225650302 , 635304679 , -1821989380 , -442714419 , -1970025686 , 1154798243 , -1077808248 , 1530260457 , -1290682730 , 175717407 , -951994412 , -1647707963 , -1792854334 , 1841083227 , 680672992 , 690862433 , 90726318 , 18773079 , -442329940 , -1184249411 , -1565383334 , 2045213459 , -625965768 , -1688828455 , 1324233670 , -2128182385 , -468411260 , 1291323829 , 1154676466 , -898889269 , -1630656880 , -912641711 , 1984666334 , 742803911 , 1338978140 , -1649633107 , -1616639094 , 914177923 , 1040745192 , -1637966903 , 997520630 , -2112968961 , -1959416524 , -520399195 , 1129300770 , -1226179525 , 1466497600 , 1308992833 , 1764401678 , 57441079 , -1151896052 , -334224483 , 898399674 , -2120409101 , -446370664 , -1100141127 , 913900070 , -970414481 , 1701833188 , -748494955 , 723295058 , -1793226069 , 1935522288 , -563145423 , -667388610 , 2020083879 , -1134139204 , 2047830669 , -246514710 , -1274143645 , 52478536 , -312394839 , 1116560214 , -735346209 , -1639034220 , 293446789 , 125599618 , -793922277 , -1570282080 , -1298824927 , 443028590 , -2100301289 , 1105659756 , -1999803011 , 1754072602 , -396938029 , -1336474632 , -1529231975 , -687538042 , 1888368975 , -1810110652 ];
Rstate      = typecast(int32(stateR12345),'int32');
seed        = 12345;
disp('Five random numbers generated in the first simulation step: ');
rn1 = mtR(5, 1, Rstate);
rn2 = mtR(5, 1, seed);
expectedRes=[0.5855288  0.7094660 -0.1093033 -0.4534972  0.6058875]';
sprintf('%s %0.7f  ',m,rn1)
disp('     input: R state as int32')
sprintf('%s %0.7f  ',m,rn2)
disp('     input: seed')
sprintf('%s %0.7f  ',r,[0.5855288  0.7094660 -0.1093033 -0.4534972  0.6058875])
assert(isequal(round(rn1,7), round(rn2,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')
% 1000 arrays of 5 random numbers from a uniform distribution in [0 1]
% generated while keeping the current MATLAB state (this is obtained
% by setting a negative Rstate)
for i=1:1000
rn2=mtR(5, 1, -3524);
end
expectedRes=[-0.6924722  1.1246956  0.1745351 -1.9678067 -1.6442717]';
disp('Five random numbers generated in the last of the 1000 simulation steps: ');
sprintf('%s %0.7f  ',m,rn2)
sprintf('%s %0.7f  ',r,[-0.6924722  1.1246956  0.1745351 -1.9678067 -1.6442717])
assert(isequal(round(rn2,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')

### Simulation of multiple arrays of normal and uniform random numbers, using mtR, randn and rand.

Both MATLAB and R code.

clear all; close all;
Rstring = ['EXECUTE THE FOLLOWING IN R TO INITIATE THE SIMULATION' char(10) char(10) ...
'RNGkind("Mersenne-Twister") # set "Mersenne-Twister" "Inversion"' char(10)...
'set.seed(12345)' char(10)...
'state = .Random.seed' char(10) ...
char(10)...
'rnorm(5)' char(10)...
'for (i in 1:1000) {' char(10)...
'    rn=rnorm(5) ' char(10)...
'    if (i==1000){print(rn)}' char(10)...
'}' char(10) ...
];
disp(Rstring);
% MATLAB SIDE:
%
m = 'MATLAB: ';
r = 'R:      ';
% 5 random numbers from a normal distribution in [0 1], seed 12345.
stateR12345 = [403 , 624 , 1638542565 , 108172386 , -1884566405 , -1838154368 , -250773631 , 919185230 , -1001918601 , -1002779316 , -321961507 , 1781331706 , 1166440499 , -117712936 , 58314745 , -938201242 , 1844978351 , -869947100 , 216221141 , 576699538 , 533687019 , 1819381040 , 675905393 , 2110048894 , 2136771815 , 1026265084 , -1037166387 , -285653718 , 1263109283 , -1975616120 , 1576168937 , -123742058 , 244715039 , 1526718932 , -1087137083 , 1442050242 , 676570459 , 800852192 , -823755935 , -566904402 , 1696695895 , 906100396 , 1479781309 , -321511590 , -1503089389 , 1068470072 , 2031323097 , 2053295558 , -749218417 , -2000861564 , 1655319477 , -768462606 , 262110155 , 399143056 , -983338159 , -1865452322 , -202515513 , 1164515676 , 80673453 , 1462142346 , 1143665027 , -1238758168 , 255598025 , 1584402166 , 1601468671 , -748103884 , 1964374181 , -656573150 , 1708781115 , -1898462144 , 469722945 , -888865778 , -807891657 , -53747700 , -1448147555 , -905087046 , -208186893 , 289994392 , -2104807495 , -895837146 , -1276970897 , -1949461532 , -133824107 , -327625390 , 1424620715 , -572587024 , 45700913 , -284602562 , 850959015 , -1739238724 , -1539126131 , -1167198742 , -713765277 , -1419293624 , -857752151 , 695563606 , -1621470241 , -2055832428 , 1623803525 , 4667778 , 276211483 , -593809504 , -1185922271 , -1144033682 , 1545929751 , -1359974036 , -1111928963 , -1511325670 , -867539245 , -979366408 , 1876477849 , 1515428486 , 777096015 , -961638076 , -2006005899 , -1471436366 , 1172761995 , -1584969904 , 2135108369 , 2097830302 , 24430983 , -498582500 , 453086829 , 1122473546 , -329311421 , 936262568 , 1691700617 , -515372106 , 452959935 , 947966452 , -1681554331 , 1229530594 , -1939746821 , 836651776 , -2083451135 , 992809166 , -1111561481 , -1899515188 , 751470941 , -1333348230 , -340137037 , 546100568 , 217337721 , 388352230 , 1029410351 , 1454915236 , 190610773 , 1220718098 , -724677013 , 832256688 , -705106191 , -345336834 , -2116392857 , 2073679228 , -1618788275 , -1498716502 , -1843275741 , -1791567096 , 555011433 , 1501549078 , -82028129 , -538978476 , 2072162885 , 1023099458 , -640456485 , -1820780960 , 1417267937 , -1615469778 , 73286103 , -1968593876 , 1264235325 , -1510432550 , 689823891 , 1374112952 , -1579825319 , 984164166 , -1212612337 , -2059232252 , -1270406347 , 485876338 , -1881661621 , 1223876112 , -1647140143 , -1228800418 , 832665415 , 1755455196 , 608166445 , 668034826 , -336263933 , 1769548392 , -946455223 , -1313552266 , 1147700351 , -1695839052 , -1854353371 , 1886752418 , -1794936389 , -230452800 , 4355777 , 201450894 , -1682241353 , 1022248332 , 702663965 , -833046214 , 2007909747 , -175672296 , -227201223 , 1249228198 , 1344398319 , -945444508 , -223954667 , 2147305170 , -1589878741 , -1905905296 , 1774732977 , 665360574 , -360581593 , 1505302588 , 1471116301 , -1804494998 , 990945763 , -965924408 , -1705927383 , 1434382038 , -677634209 , -1258556908 , -1423974907 , -2066740478 , -165025125 , 722844960 , 1478693537 , 1856575470 , 1267548055 , -336750868 , -1797794051 , -37813862 , -425518509 , 323308408 , 1053460249 , 404976646 , -1790036273 , -1086757180 , 1911766773 , -655303886 , -818736885 , -1798490928 , -925771119 , 1387684638 , -499915513 , -1422474852 , -1538656787 , 1185150922 , -592662845 , 703256872 , 1463741705 , -59357898 , 1903110719 , -1519843468 , -772809755 , 656586594 , -780217477 , 113744000 , 689151617 , -2109506994 , 931980919 , -1979738036 , 347394269 , -1807517190 , -1590403277 , 519623384 , 1120784121 , -1052089754 , -235538001 , 961926180 , 430224597 , -1696030830 , 2079601131 , -620763088 , 1172790897 , 411262334 , -1435548697 , 1702042364 , 814180301 , 612403242 , 1241590691 , 2110404744 , 945171689 , -1439511658 , -1432771297 , 260754644 , 1264634309 , 277189570 , -1757795237 , 976298976 , 1007426145 , -848753490 , -546177705 , -1250145876 , -302990659 , 2113806938 , -291892205 , -126219720 , 913770201 , -1350401850 , -1395577713 , 793964932 , 221452981 , 1157403634 , -1514683701 , -875148400 , 1744884305 , 631736286 , 820777671 , 1019618396 , -555759187 , -1608562550 , 407246979 , 400771048 , -208708407 , -1370717706 , -137129985 , -1028046284 , -1729452123 , 101752866 , 1402205499 , 1714052928 , 1443137089 , -1565405426 , 519341111 , -1195660532 , 553882781 , 856095418 , 839661811 , -341773928 , -843174215 , -1738289370 , -392704145 , -964116764 , -1407815531 , 1648670802 , -424295509 , -1104650512 , -1307167183 , -222633410 , -1084075609 , -1853366852 , 1305156493 , -1214760726 , -122456733 , -1173485752 , -1159562071 , -1537513386 , -1445664033 , -1169397868 , 2013623685 , -656679806 , -1362874853 , 395004576 , 938795553 , 548782446 , 768375575 , -1978286996 , 1785028221 , -1217002726 , -356332077 , -1337620232 , 949700249 , 2105953670 , -1543380401 , 1347370052 , -1849248139 , -1982264142 , 1965438091 , -187817392 , -1558214127 , -1001034594 , -74841977 , 1880114972 , -675193491 , -184329910 , -1199488445 , -1843235160 , 1011321993 , 1945599670 , -313150017 , 496778484 , -500616347 , 1711229154 , -318580997 , -953424384 , -1630196223 , 839705550 , -1615732233 , -874349108 , 1116608605 , -1687995526 , -1275735373 , 1782567000 , 587615865 , -1400767514 , -1178114769 , 1241409956 , -1782846379 , 1590792466 , 591467883 , -1633708624 , -1240150543 , -1425070338 , -417652889 , -1867030404 , -1824878771 , 1853401514 , 1088913187 , 972592648 , -1581872023 , 1354286358 , -888278881 , 1073791572 , 214819141 , -1768757950 , -293081125 , -639356576 , 1134389729 , -1924188626 , 1683798231 , -864424148 , -571096515 , -85548070 , 1155352467 , -1452816456 , -1258863015 , -1091642810 , -526362609 , 1559119620 , -881978827 , -1874442894 , 1597924939 , -696993520 , 1642987985 , -2088758946 , -540168633 , 1473587676 , 1387180333 , -972019190 , -1759630333 , -1217895064 , -1859683255 , -1170785418 , 666213247 , -1596852300 , 1768652581 , 1605284258 , 797669563 , -1601426240 , -616196671 , -1256933234 , -947585097 , -2043408244 , 756309021 , 2115517498 , 1890659443 , 1771400984 , -1838797255 , -1704662874 , -1421559057 , 1584845924 , -2108348395 , -649123374 , 861284139 , -1557820304 , 430122417 , -163566658 , -1621512921 , -708730052 , -1533689075 , 702667370 , -597866269 , 2085217480 , 747789353 , 2081087958 , -1006324129 , -345514732 , -1518727931 , -1033196030 , -934973029 , 1476122656 , 382054817 , -134911250 , 1893906071 , -1620516372 , -597563907 , 1494221978 , 648642899 , 312526456 , -615840231 , 1887184646 , -2006151729 , 1341133252 , 1172909557 , 17055282 , 1170233355 , -141946928 , 1277966737 , 2011657758 , 997661703 , -959132516 , -748174099 , 1409661642 , 1306318275 , 1718948904 , 300887049 , -1379157962 , 1018380607 , -149261708 , -1435399451 , -874587550 , 1827527291 , 688599936 , -1558856319 , 1888046414 , 1680727415 , 1785750348 , 1414946781 , 1273363706 , 1912489523 , 2019675608 , 731762169 , -1093888666 , -1026568017 , 1588723492 , -576576555 , -629308782 , -659228437 , -1300610256 , 1686191473 , 1225650302 , 635304679 , -1821989380 , -442714419 , -1970025686 , 1154798243 , -1077808248 , 1530260457 , -1290682730 , 175717407 , -951994412 , -1647707963 , -1792854334 , 1841083227 , 680672992 , 690862433 , 90726318 , 18773079 , -442329940 , -1184249411 , -1565383334 , 2045213459 , -625965768 , -1688828455 , 1324233670 , -2128182385 , -468411260 , 1291323829 , 1154676466 , -898889269 , -1630656880 , -912641711 , 1984666334 , 742803911 , 1338978140 , -1649633107 , -1616639094 , 914177923 , 1040745192 , -1637966903 , 997520630 , -2112968961 , -1959416524 , -520399195 , 1129300770 , -1226179525 , 1466497600 , 1308992833 , 1764401678 , 57441079 , -1151896052 , -334224483 , 898399674 , -2120409101 , -446370664 , -1100141127 , 913900070 , -970414481 , 1701833188 , -748494955 , 723295058 , -1793226069 , 1935522288 , -563145423 , -667388610 , 2020083879 , -1134139204 , 2047830669 , -246514710 , -1274143645 , 52478536 , -312394839 , 1116560214 , -735346209 , -1639034220 , 293446789 , 125599618 , -793922277 , -1570282080 , -1298824927 , 443028590 , -2100301289 , 1105659756 , -1999803011 , 1754072602 , -396938029 , -1336474632 , -1529231975 , -687538042 , 1888368975 , -1810110652 ];
Rstate      = typecast(int32(stateR12345),'int32');
seed        = 12345;
disp('Five random numbers generated in the first simulation step: ');
disp('This is done with mtR to ensure same stream ');
rn1 = mtR(5, 1, Rstate);
rn2 = mtR(5, 1, seed);
expectedRes=[0.5855288  0.7094660 -0.1093033 -0.4534972  0.6058875]';
sprintf('%s %0.7f  ',m,rn1)
disp('     input: R state as int32')
sprintf('%s %0.7f  ',m,rn2)
disp('     input: seed')
sprintf('%s %0.7f  ',r,[0.5855288  0.7094660 -0.1093033 -0.4534972  0.6058875])
assert(isequal(round(rn1,7), round(rn2,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')
% 1000 arrays of 5 uniform random numbers generated using rand function
disp('Now 1000 arrays of 5 uniform random numbers generated using rand function');
disp('REMARK: for uniform numbers FullPrecision must be false ');
current_stream = RandStream.getGlobalStream();
set(current_stream, 'FullPrecision' , false);
for i=1:1000
rn2=rand(5, 1);
end
expectedRes=[0.7500169  8.368954e-02 0.7349870  2.120063e-01 0.3928435]';
disp('The five random numbers generated in the last of the 1000 simulation steps: ');
sprintf('%s %0.7f  ',m,rn2)
sprintf('%s %0.7f  ',r,[0.7500169  8.368954e-02 0.7349870  2.120063e-01 0.3928435])
assert(isequal(round(rn2,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')
disp('Now, another five random numbers generated now with randn function. ');
disp('REMARK: for normal numbers FullPrecision must be true ');
set(current_stream, 'FullPrecision' , true);
rn3=randn(5, 1);
expectedRes=[0.5170759  0.0359742 -0.3792091 -0.5749569  0.7409261]';
sprintf('%s %0.7f  ',m,rn3)
sprintf('%s %0.7f  ',r,[0.5170759  0.0359742 -0.3792091 -0.5749569  0.7409261])
assert(isequal(round(rn3,7), round(expectedRes,7)), 'Error: MATLAB did not output the same random values as R!')

## Input Arguments

### n — Number of random numbers. Positive integer.

The number of random numbers to generate. Default is n=1.

Data Types: single| double

### distrib — Distribution. Scalar or 1-by-3 array.

Default is distrib=0.

If distrib is a scalar, then the value 0 indicates the use of the uniform distribution in [0 1], while any other value stands for the standard normal with 0 mean and standard deviation 1.

If distrib is a 1-by-3 array: the first element is the distribution type, chosen with the rule above for the scalar case; the second and the third elements are the two parameters of the chosen distribution, that is [min,max] for the uniform and [mean,std] for the normal.

Data Types: single| double

### Rstate — The R state. Positive scalar, negative scalar, empty scalar, or a 626-element int32 vector.

Stream or seed used to initialize the random number generation in MATLAB.

If Rstate is a negative scalar, then nothing is done: the state and seed are the current MATLAB ones.

This option is useful to continue a simulation, possibly intialized in previous steps from a R state.

If Rstate is a positive scalar, it is treated as a R seed; therefore, the R and MATLAB states are generated for the given seed.

If Rstate is a 626-element int32 vector, then it must contain the state of the random number stream used in R.

Data Types: Scalar or int32 vector.

## Output Arguments

### rn —generated random numbers.  Vector

Random numbers that should be identical with those produced in R.

Data Types - double array.

### varargout —MATLABstate : state of the random number stream in the MATLAB format.  Vector

Column vector which contains the random stream.

Data Types - uint32 array.

R seed : seed used to initiate the random stream in R, which mtR has converted to the corresponding MATLAB state. Scalar.

Positive integer containing the initial R seed. If the user wants to continue the simulation and uses a negative seed, or/and needs to generate data from a different distribution, a seed=0 is returned.

Data Types - Double.

In R software, the random stream for the Mersenne Twister algorithm is generated by .Random.seed as a 624-dimensional set of 32-bit integers preceded by two additional integers: the first is a code for the kind of RNG and normal generator and the second is the current position in the random stream set. The lowest two decimal digits of the RNG code are in 0:(k-1) where k is the number of available RNGs; the hundreds represent the type of normal generator, starting at 0.

The approach followed in this FSDA function to grant compatibility of random numbers generated in MATLAB and R relies on two key steps: - The state of the random number stream created in MATLAB is replaced with the stream received from R as imput argument. This step requires recasting the stream from the signed integers used by R and the unsigned counterparts used by MATLAB. The generated random stream is indipendent from the global stream.

- The inverse transformation is used to compute a normal random variate (i.e. the standard normal inverse cumulative distribution function to a uniform random variate is applied). This replaces the MATLAB default, which is the ziggurat algorithm.

The approach is applied in two possible ways, depending on user's input (Rstate argument): - In the first option, the R seed is given as input and the corresponding R, and then MATLAB, states are generated;

- In the second option, a valid R state is given as input and the corresponding MATLAB state is then generated; Note that, since R does something non-standard when initializing from a seed, there is no way to map R seed values to MATLAB's (MATLAB initializes using the standard to mt19937ar seeding algorithm). So we initialize with seed = 0 to get the correct global generator, but then we set the generator state explicitly to the MATLAB equivalent of the R specification.

Our solution grants retrocompatibility up to R2012a. Note the key changes in the syntax of MATLAB's RNG start-up: - prior to R2008b the setting was: rand('seed',0).

- from R2008b: stream = RandStream('mt19937ar','Seed',5489);

RandStream.setGlobalStream(stream).

- from R2011a the current setting was adopted: rng default.

## References

Matsumoto, M. and Nishimura, T. (2000), Mersenne Twister: A 623-Dimensionally Equidistributed Uniform Pseudorandom Number Generator, "ACM Transactions on Modeling and Computer Simulation", Vol. 8, pp. 3-30.

## Acknowledgements

The function has been written with the key contribution of Dr Peter Perkins, statistician at The Mathworks with recognised competence in random number generation and Monte-Carlo simulation.