Hi Ze,
I understand that you are getting different results with the Simulink's stateful predict and the .M file when using a BILSTM model. The differences in the results can’t be there in an ideal case.
On the other hand, LSTM models may not show the same discrepancy because they only process input sequences in one direction. This observation leaves the problem with data sequencing and state management in the backward direction. You might find the issue in the model if you look in this direction.
If the problem persists, provide the source code and environment information for the better understanding of the underlying problem.
For more information on LSTM, you can refer to the MATLAB documentation here https://www.mathworks.com/help/deeplearning/ref/dlarray.lstm.html?s_tid=doc_ta.
For more information on BILSTM, you can refer to the MATLAB documentation here https://www.mathworks.com/help/deeplearning/ref/nnet.cnn.layer.bilstmlayer.html?searchHighlight=bilstm&s_tid=srchtitle_support_results_1_bilstm.