[Scilab-users] need a little help

P M p.muehlmann at gmail.com
Mon Feb 18 18:29:27 CET 2019


..update: removing all NaN's from the map it takes about 27seconds to find
all nearest points...
I think, I can live with that...unless somebody else has another brilliant
idea.

best regards,
Philipp


Am Mo., 18. Feb. 2019 um 18:08 Uhr schrieb P M <p.muehlmann at gmail.com>:

> problem solved.....I had to think differently than before.
>
> Actually my goal was to compare point coordinates to map coordinates and
> find the points on the map which are closest to the given point coordinates.
>
> The map is of width:    900    // in reality the map is based on an image
> with 900x1500 pixels
> The map is of height: 1500
>
> The points are building a line on the map...e.g: the line consists of 1076
> points
> So from the map I have build:
>
> x = map(1,:);   // contains all x coordinates of the map
> y = map(2,:);   // contains all y coordinates of the map
>
> points = [ lineX, lineY];      // points contain the X-Y-coordinates of
> the line
>
> for i = 1:n
>      actPoint = points(i,:);
>      [nearestX xInd]   = min(abs(actPoint(1)-x));
>      [nearestY yInd]  = min(abs(actPoint(2)-y));
>      nearestPoint(i,:) = [x(xInd) y(yInd)];
> end
>
>
> This is what works for now, though it is still slow.
>
> For searching 100 points of the line it needs about 10 seconds.
> For searching 200 points of the line it needs about 19 seconds.
> For searching 500 points of the line it needs about 45 seconds.
> For searching 1000 points of the line it needs about 98 seconds.
>
>
>
>
>
>
>
> Am Mo., 18. Feb. 2019 um 16:39 Uhr schrieb P M <p.muehlmann at gmail.com>:
>
>> Ok, thanks for your help..
>>
>> Actually the sizes I gave where just for demonstation.
>>
>> If I use the real array sizes, I get a message: can not allocate
>> 7469.60MB memory...which maybe is true.
>> available RAM after starting Scilab is 3701 MB
>>
>> actual array sizes:
>>
>> A has 1076 elements
>> B has 1'350'000 elements, with a lot of Nan's in it
>>
>> if I use thrownan(B) I can reduce the array size of B to 867751 elements
>> but still get the Message above.
>>
>> (without thrownan() the memory scilab wants to allocate is even bigger)
>>
>>
>>
>>
>> Am Fr., 15. Feb. 2019 um 23:25 Uhr schrieb Samuel Gougeon <
>> sgougeon at free.fr>:
>>
>>> ... and even clearer, with respect to your own notations:
>>>
>>> --> A = rand(1,1000);  // test's data
>>> --> B = rand(1,10000);
>>> --> [a, b] = ndgrid(A, B);
>>> --> size(a)  // same for b
>>>  ans  =
>>>    1000.   10000.
>>> --> [v, i] = min(abs(a-b), *"c"*);
>>>
>>> _______________________________________________
>>> users mailing list
>>> users at lists.scilab.org
>>> http://lists.scilab.org/mailman/listinfo/users
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20190218/2ef12ac5/attachment.htm>


More information about the users mailing list