help-octave
[Top][All Lists]
Advanced

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

Re: Avoiding looping when applying a 'find' function to an array


From: David Bateman
Subject: Re: Avoiding looping when applying a 'find' function to an array
Date: Wed, 13 Apr 2005 17:19:38 +0200
User-agent: Mozilla Thunderbird 0.8 (X11/20040923)

Jeremy

Have you seen the "lookup" function in octave-forge? I believe it does exactly what you want. Follow your syntax below, it would be used something like

output_array = look_up_table (lookup (look_up_table, input_array));

Regards
David

Harbinson, Jeremy wrote:

Hi,
I have a problem which can be easily solved by looping, but which I
would like to try to solve by avoiding loops.

I need to transform one array to another equally sized array using a
look-up table.
If the input array is A, then I take the value of each element of array
A one by one, and using the 'find' function, I find the appropriate
value for the matching element for the output array via the look-up
table. Looping over every element in array A works just fine - for each
element in A I can obtain an output value for the output array. However
I can not think of way of doing this same task without looping - that
is, applying the 'find' function to each element and producing an output
array without looping.
If I input:

Location_of_value_for_output_array = find(input_array(1,1) ==
look_up_table)

then I get the correct location in the look-up table for the value
required in the output array, and then I increment the index of
input_array etc - this is slow because the array is 512 times 512 array
(a graphics file) and the look-up table is 574 rows long.
However if I try the following:

Location_of_value_for_output_array = find(input_array(:,:) ==
look_up_table)

Or
Location_of_value_for_output_array = find(input_array == look_up_table)

then I have no success.
Any help would be much appreciated,
Thanks,
Jeremy Harbinson


-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------



--
David Bateman                                address@hidden
Motorola Labs - Paris +33 1 69 35 48 04 (Ph) Parc Les Algorithmes, Commune de St Aubin +33 1 69 35 77 01 (Fax) 91193 Gif-Sur-Yvette FRANCE

The information contained in this communication has been classified as: [x] General Business Information [ ] Motorola Internal Use Only [ ] Motorola Confidential Proprietary



-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------



reply via email to

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