[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: out of memory or dimension too large for Octave's index type
From: |
Markus Mützel |
Subject: |
Re: out of memory or dimension too large for Octave's index type |
Date: |
Wed, 26 Oct 2022 16:46:27 +0200 |
Am 26. Oktober 2022 um 16:32 Uhr schrieb "Jiang, Yanda [E CPE]":
> Hi Markus,
>
>
> Thanks for your reply.
> That issue has been resolved.
Which of the two proposed changes did you test? Or did both of them work? I'd
like to fix this in Octave so others won't run into the same issue in the
future.
> Then how about this below one? (nbr and nb are very large). I encountered the
> same problem as before.
> H = sparse(zeros(nbr, nb));
This creates a *full* matrix with those dimensions by calling the `zero`
function. (Or at least it tries to do so.) After that, it would convert that
full matrix to a sparse matrix.
Try to directly create a sparse matrix with those dimensions instead:
H = sparse(nbr, nb);
See also the documentation for `sparse` that also mentions other constructors.
You can open the documentation with this command:
doc sparse
Markus
------------------------------------------------------------
From: Markus Mützel <markus.muetzel@gmx.de>
Sent: Wednesday, October 26, 2022 4:37 AM
To: Jiang, Yanda [E CPE] <yandaj@iastate.edu>
Cc: help@octave.org <help@octave.org>
Subject: Re: out of memory or dimension too large for Octave's index type
Am 26. Oktober 2022 um 07:06 Uhr schrieb "Jiang, Yanda [E CPE]":
> Dear Sir/Madam,
>
>
> I am a phd student who is using octave for my research work.
> While running my code, I got this error message.
>
>
> After hours of investigation, I believe the reason is one matrix is
> 232100*71368.
> Do you have any method to solve this problem?
For the future: Please don't use images of text. Paste the text directly
instead.
I'm guessing your input to `glpk` is sparse. Line 507 of `glpk.m` uses:
if (any (! isfinite (A(:))))
error ("glpk: The values in A must be finite");
endif
`isfinite (A(:))` creates a sparse Boolean matrix. However, it is likely not
sparsely populated which might be the cause for the memory issue.
Does it work if you edit that file and change the above lines to the following?
if (any (isinf (A(:))) || any (isnan(A(:))))
error ("glpk: The values in A must be finite");
endif
Alternatively, try:
if (any (any (! isfinite (A))))
error ("glpk: The values in A must be finite");
endif
Markus
- out of memory or dimension too large for Octave's index type, Jiang, Yanda [E CPE], 2022/10/26
- Re: out of memory or dimension too large for Octave's index type, Markus Mützel, 2022/10/26
- Re: out of memory or dimension too large for Octave's index type, Jiang, Yanda [E CPE], 2022/10/26
- Re: out of memory or dimension too large for Octave's index type,
Markus Mützel <=
- Re: out of memory or dimension too large for Octave's index type, Jiang, Yanda [E CPE], 2022/10/26
- Re: out of memory or dimension too large for Octave's index type, Jiang, Yanda [E CPE], 2022/10/26
- Re: out of memory or dimension too large for Octave's index type, Markus Mützel, 2022/10/26
- Re: out of memory or dimension too large for Octave's index type, Jiang, Yanda [E CPE], 2022/10/26
- Re: out of memory or dimension too large for Octave's index type, Markus Mützel, 2022/10/27
- Re: out of memory or dimension too large for Octave's index type, Jiang, Yanda [E CPE], 2022/10/27
- Message not available
- Message not available
- Message not available
- Re: out of memory or dimension too large for Octave's index type, Nicholas Jankowski, 2022/10/26
- Message not available
- Message not available
- Message not available
- Message not available
- Fwd: out of memory or dimension too large for Octave's index type, Nicholas Jankowski, 2022/10/26
- Re: out of memory or dimension too large for Octave's index type, Nicholas Jankowski, 2022/10/26
- Re: out of memory or dimension too large for Octave's index type, Jiang, Yanda [E CPE], 2022/10/26