Maximum recursion limit of 500 reached problem
Ältere Kommentare anzeigen
Hello, I have this error
Error evaluating 'PreLoadFcn' callback of block_diagram.
Caused by:
Maximum recursion limit of 500 reached.
preload fun:
commlteSystem_params;
[prmLTEPDSCH, prmLTEDLSCH, prmMdl] = commlteSystem_initialize(txMode, ...
chanBW, contReg, modType, Eqmode,numTx, numRx,cRate,maxIter, fullDecode,chanMdl, Doppler, corrLvl, ...
chEstOn, numCodeWords, enPMIfback, cbIdx);
clear txMode chanBW contReg modType Eqmode numTx numRx cRate maxIter fullDecode chanMdl Doppler corrLvl chEstOn numCodeWords enPMIfback cbIdx
and commlteSystem_params script:
% Script for LTE (mode 1 to 4, downlink transmission)
%
% Single or double codeword transmission for mode 4
%
commlteSystem_params;
[prmLTEPDSCH, prmLTEDLSCH, prmMdl] = commlteSystem_initialize(txMode, ...
chanBW, contReg, modType, Eqmode,numTx, numRx,cRate,maxIter, fullDecode,chanMdl, Doppler, corrLvl, ...
chEstOn, numCodeWords, enPMIfback, cbIdx);
clear txMode chanBW contReg modType Eqmode numTx numRx cRate maxIter
fullDecode chanMdl Doppler corrLvl chEstOn numCodeWords enPMIfback cbIdx
disp('Simulating the LTE Downlink - Modes 1 to 4');
zReport_data_rate_average(prmLTEPDSCH, prmLTEDLSCH);
hPBer = comm.ErrorRate;
%%Simulation loop
tic;
SubFrame =0;
nS = 0; % Slot number, one of [0:2:18]
Measures = zeros(3,1); %initialize BER output
while (Measures(3) < maxNumBits) && (Measures(2) < maxNumErrs)
%%Transmitter
[txSig, csr, dataIn] = commlteSystem_Tx(nS, prmLTEDLSCH, prmLTEPDSCH, prmMdl);
%%Channel model
[rxSig, chPathG, ~] =commlteSystem_Channel(txSig, snrdB, prmLTEPDSCH, prmMdl );
%%Receiver
nVar=(10.^(0.1.*(-snrdB)))*ones(1,size(rxSig,2));
[dataOut, dataRx, yRec] = commlteSystem_Rx(nS, csr, rxSig, chPathG, nVar, ...
prmLTEDLSCH, prmLTEPDSCH, prmMdl);
%%Calculate bit errors
Measures = step(hPBer, dataIn, dataOut);
%%Visualize results
if (visualsOn && prmLTEPDSCH.Eqmode~=3)
zVisualize( prmLTEPDSCH, txSig, rxSig, yRec, dataRx, csr, nS);
end
fprintf(1,'Subframe no.%4d ; BER = %g \r', SubFrame, Measures(1));
%%Update subframe number
nS = nS + 2; if nS > 19, nS = mod(nS, 20); end
SubFrame =SubFrame +1;
end
toc;
What should i do to prevent this error from happening? Thanks in advance.
Akzeptierte Antwort
Weitere Antworten (1)
Ameer Hamza
am 28 Apr. 2018
This happens when you are recursively calling your function to the very deep level of recursion. Although it is better to re-design you algorithm to reduce recursion, if that is impossible you can increase the limit using
set(0, 'RecursionLimit', 1000);
Kategorien
Mehr zu Sources and Sinks finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!