Table size limit?

Here is what I am seeing:
>> mnl = readmps('mnl.mps');
??? Error using ==> addtotable at 12
Too many entries in table.
Error in ==> readmps at 150
rowtable=addtotable(rowtable,f{2},rowcount);
I am trying to use readmps, a file off the matlab exchange for creating linear programming problems in matlab. I have used the program before with no problems. I suspect that the mps file I am trying to read in is just to big. Is this likely the cause? Is there some size limit on tables that I am unaware of?

Réponses (5)

Edward Umpfenbach
Edward Umpfenbach le 5 Mar 2012

0 votes

Still hoping for an answer. Bump.
Walter Roberson
Walter Roberson le 5 Mar 2012

0 votes

I do not find any readmps routine in the MATLAB File Exchange.
I find lpmexext which appears to have a read_mps command in it. That code appears to have a limit of 100 lps. You might be able to increase that by increasing the value of the LPMAX #define near the beginning of the C source.

1 commentaire

Walter Roberson
Walter Roberson le 5 Mar 2012
In newtable.m change the 1000 to a larger value.

Connectez-vous pour commenter.

Edward Umpfenbach
Edward Umpfenbach le 5 Mar 2012

0 votes

I apologize. It must not have been on the exchange. I found it through google:
I will consider lpmexext, but only if I really need to. I could probably deal with C source code and Mex files, but my comfort zone is just m files.
Jan
Jan le 5 Mar 2012

0 votes

There is no real chance, that somebody can guess, what's going on. We do neither know the function nor the file.
I suggest to use the debugger to stop Matlab, when the problem occurs:
dbstop if error
Then check the value of the local variables. Perhaps rowcount is Inf by accident or a damaged file? Perhaps it is negative and the error message is misleading?
Did you ask the author?
Edward Umpfenbach
Edward Umpfenbach le 5 Mar 2012

0 votes

The reason I didn't do any of what you have suggested is that I have successfully used this file before, no errors. The only thing that changed is that I have a larger mps file. In addition, it ran for approximately a day before I saw the error above. Thus, I assumed that I was hitting some Matlab limit on a data structure size or something.
I will try with the debugger. Thanks for the help.

3 commentaires

Walter Roberson
Walter Roberson le 5 Mar 2012
The error message you indicate is hard-coded in to addtotable.m and is based upon 90% occupancy of the declared table size, where the declared table size is initialized to 1000 in newtable.m
The error message is _not_ produced as a result of a try/catch around having run out of memory: it is produce by the code detecting that the table it pre-created is full.
Edward Umpfenbach
Edward Umpfenbach le 6 Mar 2012
Sounds good. So, just to be clear, open newtable.m, change the 1000 to a larger number, and I should be good?
Walter Roberson
Walter Roberson le 6 Mar 2012
Looks like it to me. Or at least _that_ won't be the limit you run in to ;-)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Write C Functions Callable from MATLAB (MEX Files) dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by