help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

cellfun and parcellfun not working with large number of inputs


From: Jarom Jackson
Subject: cellfun and parcellfun not working with large number of inputs
Date: Fri, 9 Nov 2012 19:56:13 -0700

I have a function that repeatedly solves an ODE, maximizing a certain parameter, and I want to do that for many various inputs. Each input takes several minutes, so I'm using parcellfun to speed things up - but it stops working with a large number of inputs/outputs.

When I do this over a range of values, with a total of less than ~30 inputs, than it works fine - plotting the resulting data ends up giving a nice exponential decay. If I do too many though (ex 100), it starts breaking down, and and randomly returns 0 vectors for the solution  - which I know is incorrect. I'm using 1000 points for lsode, so in the end I should have 100 solutions, each with 1000 data points with 2 components - I don't think there should be a memory problem here, but that's the only thing I can think of.

Basically, it looks something like this:
N = 28;
inputs = linspace(.1,2,N)
cellinputs = mat2cell( inputs, ... something else...)
solutions = cellfun( functionthatuseslsode,inputs)
for i=1:N
  y=solutions{1}(1,1)
end
plot(inputs,y)

so - it works fine while N is small, but I begin getting nonsensical answers as N is increased >~50 ( I would expect it to be the same - but more points on the plot at the end)

I have tried just using cellfun as well - same results.

I know lsode uses fortran based code - is there any problem with this?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]