index must be a positive integer or logical error

I have defined a 3x443 matrix q in a quasi-1D CFD solver written as a Level II MATLAB S-Function. At iteration 53726 the Simulink simulation stops and I get the following error message:
Error evaluating registered method 'Outputs' of MATLAB S-Function 'File_S2' in 'File_SM_V1/Nozzle/Level-2 MATLAB S-Function'. The following is the MATLAB call stack (file names and line numbers) that produced this error: ['/home/APSE/Simulink/File_S2.m'] [245]
Caused by: Attempted to access q(2,1); index must be a positive integer or logical.
I don't understand the error since '2' and '1' are both positive integers and q(2,1) exists. Any advice on what could be causing the error would be appreciated.

 채택된 답변

Walter Roberson
Walter Roberson 2013년 10월 22일

0 개 추천

It could be that the 2 or 1 are the printable representations of numbers very close to 2 or 1.
Put a breakpoint in at that line, and check the indices, subtracting the value that it appears to be from the actual variable holding the index. Make sure you are using
format long g
to get the proper printout.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

2013년 10월 22일

답변:

2013년 10월 22일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by