index must be a positive integer or logical error
4 views (last 30 days)
Show older comments
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.
0 Comments
Accepted Answer
Walter Roberson
on 22 Oct 2013
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 Comments
More Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!