1function [Y] = neural_function(X)
 2%NEURAL_FUNCTION neural network simulation function.
 3%
 4% Generated by Neural Network Toolbox function genFunction, 01-Oct-2018 18:35:00.
 5% 
 6% [Y] = neural_function(X,~,~) takes these arguments:
 7% 
 8%   X = 1xTS cell, 1 inputs over TS timesteps
 9%   Each X{1,ts} = 87xQ matrix, input #1 at timestep ts.
10% 
11% and returns:
12%   Y = 1xTS cell of 1 outputs over TS timesteps.
13%   Each Y{1,ts} = 3xQ matrix, output #1 at timestep ts.
14% 
15% where Q is number of samples (or series) and TS is the number of timesteps.
16
17%#ok<*RPMT0>
18
19% ===== NEURAL NETWORK CONSTANTS =====
20
21% Input 1
22x1_step1_xoffset = [-3.93358162325573;-4.7005389351864;-4.17691575624323;-4.19603037687426;-4.24094862044763;-3.71117466932456;-3.64052551016929;-2.39437691096801;-2.36705370150794;-1.89475660103364;-1.87871918918137;-1.57157228707323;-1.20011871674397;-0.810944426141116;-0.662032627032511;-0.956311706629162;-0.845930356522473;-1.16936608915729;-1.39629731012193;-1.29905202198026;-1.4564877422106;-1.58750706589727;-1.77751999303987;-2.0703741508203;-2.33579156864261;-2.65329782922328;-3.3579239298296;-4.00650910828663;-4.48412955433827;-5.28339353087632;-5.38082724356509;-4.72473154987194;-4.81390867801994;-4.52533913850157;-4.55546284225742;-5.10576809517968;-5.36744840800978;-5.52775208337947;-5.34535960705908;-5.0786798631313;-4.8954857330568;-4.52356075123602;-4.42613841511285;-4.08166190793305;-4.06947400328473;-3.46464996229915;-3.16034782045202;-3.03682095581605;-3.07569726494871;-2.97889488400619;-2.68135113203762;-2.8071620758414;-2.99507176859322;-3.0380400813079;-3.25921390889523;-3.19987420335154;-3.35460289806095;-3.52090292974416;-3.6255135555423;-3.52960963346527;-4.21793923319817;-4.18648941345696;-4.86191302230411;-4.61464622664525;-4.68644532142178;-4.3060123087063;-4.15341461504635;-4.08539194750866;-4.05089377445154;-4.49850304412451;-4.47268770726707;-4.71240054302569;-4.82967664541423;-4.80950364566299;-5.08775060624053;-5.21696357135953;-5.29553820241571;-5.28236459560578;-5.3497388527466;-5.63136811993728;-5.43144206613029;-5.5621130892755;-4.87680603056546;-4.839662467674;-4.48803536222872;-3.5155890484586;-3.06204372041065];
23x1_step1_gain = [0.350123729291923;0.310306694862397;0.330289865790475;0.320555805444016;0.314437909244984;0.341119031224766;0.299535627019141;0.376932944740204;0.37426408030959;0.403992777509957;0.385007042584086;0.405886442776289;0.427292823872727;0.488045810050552;0.534522201354226;0.494162928493379;0.516220888171863;0.500543073092887;0.460843462187998;0.475706742343186;0.483563987547145;0.457722198808448;0.48513572417292;0.449810257720805;0.461329081470528;0.486305711044667;0.433716789827896;0.403614656968077;0.409643535243235;0.374904107328359;0.363859701758097;0.42280276440439;0.419987952915447;0.44725581821976;0.439092725337682;0.391713334647472;0.366003190391681;0.353952776973158;0.371062938557826;0.385996133731071;0.388195112243647;0.402823772500652;0.405979831784203;0.39785630729736;0.395760845114842;0.444424959611998;0.534890136970141;0.569684015150813;0.533982571663888;0.541840707011217;0.595931552560612;0.688714678287541;0.629623426262478;0.628865510723891;0.598306839944129;0.6031436328936;0.582787173814482;0.546024801270456;0.543143488354881;0.543785690766324;0.461495883470795;0.413159465875324;0.330707525146053;0.35924773659937;0.360546164696299;0.353557875910774;0.369451419835682;0.416397720785669;0.4712415678985;0.423343722174895;0.428645411367945;0.395720291722239;0.396637814545147;0.400298162900016;0.379645473209065;0.373238460700493;0.36828707498269;0.374103654515404;0.363387758853434;0.349223454326535;0.367426775569484;0.359270001146643;0.402184893391046;0.39947130080122;0.408017529044216;0.355987200560011;0.333739285962095];
24x1_step1_ymin = -1;
25
26% Layer 1
27b1 = [1.3303388563824017;0.48430607093416322;-0.13996164446191606;-0.48286858201237504;1.4403474171763477;0.7568606439201272;1.2778579032993866];
28IW1_1 = [-0.096980280681273928 -0.05126948744558453 0.059166614479941704 0.57493676383350734 -0.40372704568557954 -0.33142815952548249 0.028750612139460459 0.93332495272790827 0.12495785938014936 -0.0030962486959824256 0.30544471284695823 0.13963049312268061 0.2301836469921566 -0.18608439342474231 -0.28225104878913482 -0.43451580010226387 -0.17339172058235591 -0.17794680622691506 -0.15101514604532928 0.050307562774164233 -0.41397401706289694 -0.14010170156342405 -0.45310084404226442 -0.43016864493412588 0.072323920054999852 -0.29375974791915649 0.2099474024906717 0.8491828912940933 0.22421141499700559 0.09998748100060717 0.45372283925334772 -0.26104290113674744 0.056903064744558696 0.43470253007940346 0.26589436837100555 -0.54056068059601903 -0.95332830076688047 -1.3240933140067166 -0.66049781203618207 -0.49235127971744458 0.083935257658885126 0.15582791446988037 -0.066393683992108835 0.51623218697681272 0.38970459314068945 0.99699403395554254 0.67479201506520892 -0.33785374600314044 -0.22194391699987379 0.99680472396599284 -0.043051618697342323 0.45662072932202558 0.11224238143127165 0.37203733748562129 -0.1277298254579643 -0.15248893268510263 0.21086384363207711 -0.19027332510237749 0.25829624791629258 -0.0065515803239256376 -0.18811664322305763 0.18478825050399367 0.0082902836978532915 0.61521903123439936 -0.20366708333858996 0.11192111621560633 0.63543733046589201 0.22750992720245872 -0.25443664736535998 -0.44262069602359672 -0.28633613519921308 0.092092794773306258 -0.082710049062752422 0.3456111676796404 0.075255593143145047 -0.237259869704325 -0.46231502653222939 -0.17011237679831551 0.169183860425828 0.39796359158464067 -0.18594616851301077 0.070625622996685025 0.34796608550998087 0.1065617147197816 0.016393728144700422 -0.27513802237260232 -0.87993739189858489;-0.53925901922831787 -0.15697181119224168 0.14602929902659267 0.049200565380991282 -0.26174389316855884 -0.04083897936233237 0.13945152253353507 0.33721278291390372 -0.03075865867111563 -0.2137780659729831 0.25229048449337665 0.15362879635662297 0.068131782834044557 -0.014496366032474006 0.21001427837065148 -0.22916026168231224 -0.1921534707033728 -0.19711793583117382 -0.011264075583990715 0.12382567186271962 -0.11993728057955313 0.36263056094330315 -0.10866064184256766 -0.16599862609527183 0.38765911742443693 -0.15069769912025194 -0.11587410917130472 -0.18988889790869531 0.10297432279838356 -0.33071264929681488 -0.21395363120729821 -0.67209503579979668 -0.51899697255572508 -0.040936610667725193 -0.063668310012914536 -0.3724334735079175 -0.21241586378720306 -0.03415695561438814 0.31493379876803018 -0.081529590924325365 0.22587345703934691 0.67822048861321638 0.31175429336694499 0.42873283536130463 0.24947409036659485 0.93163363593262538 0.30047649915232616 0.36526630174277924 0.24309703766296606 0.70573983806417451 -0.14368200175581375 0.61901602930590072 -0.062047481893304418 0.12232352959482579 0.25003693345290423 0.12654252978178149 -0.041052568007557376 0.23500415436738789 0.25848089312297484 0.40606437464618789 0.18499730936598546 0.15631396203481723 0.20844982249337846 -0.00026603380031256507 -0.31785762529456779 0.056235501382976588 -0.24362926609456351 0.066335875048018106 -0.0068350967125102233 0.17091492542458819 0.042309560612733346 0.2586471965468517 0.019332171679381002 0.24202524501385492 0.19519357371224025 0.23920016350651582 0.14505285507300994 -0.1363427992661726 0.016518259336585989 0.071775905177259139 -0.38904082950119512 0.1664558365307286 0.14960627399183951 -0.073899365495549152 -0.11494950417371554 0.27903759555472191 -0.48030056055137182;-0.2336607017957241 0.27627396018656675 0.12084911568586068 -0.22256558884053379 0.35770782214914321 -0.030420509120051724 0.40871128033260434 -0.6849062735204805 -0.18914414166399776 -0.39511007272621357 -0.11683381026373024 -0.10394131160200992 0.056770613216140742 -0.031438332223428886 -0.31572516444615467 0.38583246086959611 0.17883736424564134 0.3805687729419695 0.17556216385515741 -0.12257687282899428 0.24486094819443271 0.4206510122774772 0.062419369636676381 0.027024118294658964 -0.22651859790972323 0.54440734732983831 0.06278458871511132 -0.65474887294856821 -0.34781572289161866 -0.13832928457522531 0.26374046491885955 0.82297261039374292 0.27270479329367209 -0.2069906099251192 -0.19343352848313472 0.64370035563739381 0.8634550687528223 0.84002836852127694 0.11710549103088638 0.42440613234277491 -0.13269384451373967 -0.37374848530486504 0.030319982607798151 -0.43436428463526555 -0.26435238402420003 -0.77493497043168147 -0.64009142520902151 -0.20337741137545223 -0.28273519527234464 -0.42750877872865539 -0.32867527987598744 -0.37904122163819137 -0.32663919684669351 -0.2911810851564372 0.18156394571807249 -0.29789160165005102 -0.0035296225641382045 0.047160454415025962 -0.20521509651985889 0.27300861137817933 -0.074332643101722704 -0.067235984342301408 0.21165591994488922 0.11644856880863728 0.029519936631241424 0.091976701396118049 -0.039809596995156779 0.0091444837809973728 0.4853669557822532 0.52011016482496353 0.52245167117697955 0.064528582701037632 -0.34297791583242071 -0.26590283806361409 -0.16268919502812845 0.15762912321525169 0.015754488749759092 -0.019243947010018442 0.079163353342053017 -0.42924029585073786 -0.029606654934983205 -0.30177965908539639 -0.32193749354040552 0.35694031884245114 -0.096983265407107222 0.63114514409479128 0.81346968190082147;-0.08492148076503811 0.10855240923328056 -0.046931230083819636 -0.51144297768280078 0.04976538719458784 0.29719886133105489 0.24113136860968601 -0.2385316292356251 0.46366301280291555 -0.22378311103977913 -0.068101066008155173 -0.38263816470980289 -0.32876486533489291 -0.52300750687780551 -0.37143730081179804 -0.37434445234968944 -0.24836176972170168 -0.35662057285202819 -0.38080306893903665 -0.19106084302074042 0.22296663892683527 0.10422663059178314 0.43621062565974678 0.22989354833633951 0.23448948324798952 0.30177036252683831 -0.085602673452154915 -0.19816101665630087 0.20669975076169589 -0.0231146554520325 0.36868949846270149 0.12750096205392752 -0.18810592972132414 -0.026381251273397979 0.059991570050013737 0.53326870780846958 0.37100359066385008 0.65988427892590096 -0.31486307017592369 0.41243177246657409 -0.19120241376770553 0.079939218987974681 -0.18884472316539386 -0.40332704343399867 -0.44763049603968658 -0.2396998706439156 -0.22362154422390962 0.32471120803744496 -0.27246343724921751 -0.62034763456317299 -0.20951868839773702 -0.20427774850022096 -0.13547672360289337 0.035266078864770053 0.28110233310842525 0.21652933326120566 -0.094863367516833913 0.18545467324188153 -0.25694611362739639 0.20270846757705674 0.051585593116900065 0.10353395705410076 0.40998322980749258 0.068335223819787017 0.37445016416129434 0.042562106518622571 0.28462461071303946 0.31521711425085958 0.2529419825607247 0.37374996559420587 0.55629769193677736 0.32835044201555164 -0.021958989093254229 0.022526389841741074 -0.10571329955546893 -0.098761436065629246 0.22996399525538114 0.21674030946875766 0.1465959229148929 0.26917033898471415 -0.010076263596847705 -0.053349099695005939 -0.066884663580669024 -0.060733646189359905 0.27730964218360771 0.47717553050670297 0.36138522882112056;0.73247697097362652 0.50295054527493388 -0.20660902435243714 -0.086229231452175231 0.12830118814603714 0.36071535484791512 -0.19060565105065683 0.10567327327797074 -0.44714641242336128 -0.26981855843668973 -0.2585287760863188 -0.17604866275531264 0.45705343662074471 0.51502292007459249 0.12268700572856285 0.85389537613069277 0.43941471911169094 0.22023764581231339 0.14038126528781161 -0.0088973135731430231 -0.080124021245137331 0.35907099002817144 -0.24331697714374698 -0.36109726187386226 -0.34514619838299399 -0.39178681556667699 0.098769809326487337 0.12118076073183884 0.015385624014233559 0.35051830580765359 0.11597015488006537 0.38471097954459021 0.1950199372502128 0.001359295445295082 0.030737410845168407 -0.033862728782170767 0.22890099323196103 -0.52370422711651976 -0.40855542746040807 -0.51187571960224587 -0.089087796314263487 -0.071379955870411557 -0.41325705071617597 -0.057956769098904508 0.11435743565754072 0.28068148739424165 -0.062087749549458365 -0.38727203564037505 0.42208307797294808 0.69601503659608777 -0.23659198308897811 0.235074160329133 0.24343535617467044 0.050841960084369725 -0.35696929246306891 -0.15396867904083314 -0.37138105654946618 -0.18113655525128411 -0.23848272939090132 -0.72659567225492716 -0.16673175374534172 -0.20190555991107123 -0.30175666783376848 0.38891341229798282 -0.3539247497662138 0.20590235355722908 -0.054188713842255765 0.15273894709312713 -0.18452667061275108 -0.37719696709535888 -0.49599016017944836 0.21447160503201237 -0.32618399400875092 -0.25437131322023826 0.087090692536121811 -0.43415737523324588 0.28177026104516234 0.094984155098177481 0.13576873775234816 -0.012906606340457715 -0.12939138552978863 0.22742350480439394 0.024209197265779511 0.29566619652745629 -0.14220175887469197 -0.29681246567546893 0.14168875166108405;0.41121972764967918 0.15398997817318763 0.1306790930971469 0.061775683918295667 -0.18510520311213324 0.14881990064039086 0.33557457848856914 -0.010588546534660202 0.07583982521480151 0.2562172466810041 0.1596800793930033 -0.04905872991920756 -0.20128726552190465 0.098961815888513979 0.063733308350814435 -0.39833315092383537 -0.18989072248375913 -0.36788093348043993 0.013658323678677541 -0.27821589670861158 0.029902990639075207 -0.1181793472297067 -0.19686982540593947 -0.0061403852068276608 -0.32384027684404781 0.25545964568230778 0.11560466497798094 -0.10378912494779813 0.1652721239137134 0.0058019874721854693 -0.046323354839511222 -0.02298137869059701 -0.22159486839204418 -0.20582302789606222 -0.2565123307951957 0.024308012445123837 -0.23285724736067309 0.088651095913326913 0.19927901845358159 -0.24943055402143294 -0.024888122550690367 0.12482125417734138 0.21485902704911994 0.39310528000324918 0.16759915925966742 0.044357938295021306 0.14199325151825182 0.25716486938588401 0.2092224871645717 0.016817161723158461 0.41789991706901203 -0.0026080307830618071 -0.1039620270346973 0.30777118782357693 0.10093974961800528 0.25048036581243821 0.21729543078216035 0.17840302145320408 0.3379497637848134 0.12362569565579891 0.26946435932701945 0.31575521302468562 0.28750722572970744 0.044609633710683272 0.2405177487867266 0.0058374732332592376 -0.11080299494950008 0.12491720011222457 0.35479484253417098 0.2095085639460231 -0.057272822070158928 0.061431486327923432 -0.057678221189215534 0.20220630971658998 -0.19816724824478033 0.014764759880255886 -0.051448468209040414 -0.15364310750417939 0.10873091720319816 0.31661942055833836 0.1638478351607775 0.29837532607268269 0.020091028329137471 -0.27973167630284362 -0.084407111060703949 0.19322859452974506 -0.029009879240860632;0.25736146574183838 -0.016418390702866006 0.11525290864099327 0.36728611671918127 0.073540284488388605 0.18089046352587257 -0.25931270135049644 -0.015527968337368928 -0.33068671968890867 -0.1339521878691107 0.22093085509116406 0.23604346979055821 0.20091882134377959 0.30633584506524614 0.38816778798247015 0.1957678484553016 0.037369193952718802 0.36833984805147413 0.20697648304280392 -0.037769197354842597 0.11937382272461147 0.14123606216826476 -0.16936485307181975 -0.4732640312417124 -0.13504322754913084 -0.22504816550474077 -0.22359900922723402 0.067248356369669846 -0.032624609613659504 -0.088980960671997136 -0.24979972874813128 -0.028088939604939134 0.14757111983236904 -0.35601319425269584 -0.2399919678004705 0.060964021023144049 0.25027362028852029 0.13921145575945201 0.29385537444333032 -0.1179077890637705 0.14652345114098561 -0.06094696288415416 -0.10837756042161514 0.088651783160239389 0.14863242098221902 0.42147799094323768 0.10345454092730669 0.0089518950158614975 0.33447030029674973 0.25754125347086348 0.050968112613134497 0.20927004189711271 0.51605264041165211 0.19353960725605229 0.019744296100355024 -0.088430387092279863 -0.095075976664470041 -0.21726095487989316 0.12195442730604597 -0.084946484905938258 -0.21864473879214802 0.077652453300935259 0.14524664732667292 0.031211740269690109 -0.52344715195375913 0.068626073592479506 -0.26882059433948591 0.16710679527722008 -0.1103737216770071 -0.2928809203080569 -0.23633014087459758 0.16897610164429308 -0.18561831020943936 -0.056059719247841464 0.039796780301173174 -0.022904974038449336 0.24459328116181128 -0.22893223142702931 -0.25987566377879312 0.091316071772359772 -0.22359258669807017 -0.09297638402912578 -0.17380774835495816 -0.11692420921430537 -0.31825334590099547 0.19277470109246372 -0.25244139944865052];
29
30% Layer 2
31b2 = [1.8462877881569821;-0.057027038557283541;-1.3496395642347347];
32LW2_1 = [-1.6789813159209799 0.9724194856787185 -1.4699771479786734 2.0125735931938911 -3.0355282630350708 0.0062420003061243014 -1.3644793930057564;-2.0187084469138945 -0.69912060811285071 1.681017497280942 1.7885914298698502 2.0620943255650568 -0.50200441674015572 0.4718136850056871;2.6073454615845915 1.3769938730758091 -1.6865797663384852 -2.7144429677406947 1.2658729645764237 -0.7344433812051353 -1.4361737233645488];
33
34% ===== SIMULATION ========
35
36
37
38% Dimensions
39TS = size(X,2); % timesteps
40if ~isempty(X)
41    Q = size(X,2); % samples/series
42else
43    Q = 0;
44end
45
46
47
48    % Input 1
49    Xp1 = mapminmax_apply(X,x1_step1_gain,x1_step1_xoffset,x1_step1_ymin);
50    
51    % Layer 1
52    a1 = tansig_apply(repmat(b1,1,Q) + IW1_1*Xp1);
53    
54    % Layer 2
55    a2 = softmax_apply(repmat(b2,1,Q) + LW2_1*a1);
56    
57    % Output 1
58    Y = a2;
59
60
61end
62
63% ===== MODULE FUNCTIONS ========
64
65% Map Minimum and Maximum Input Processing Function