[scilab-Users] Matlab ismember
dragomir nedeltchev
dnedelchev65 at yahoo.com
Mon Jan 17 17:50:38 CET 2011
Thank you very much
--- On Mon, 1/17/11, Michaël Baudin <michael.baudin at scilab.org> wrote:
From: Michaël Baudin <michael.baudin at scilab.org>
Subject: Re: [scilab-Users] Matlab ismember
To: users at lists.scilab.org
Cc: "dragomir nedeltchev" <dnedelchev65 at yahoo.com>
Date: Monday, January 17, 2011, 5:30 PM
Oups, this is the good one :
http://bugzilla.scilab.org/show_bug.cgi?id=8792
Michaël
Le 17/01/2011 16:26, Michaël Baudin a écrit :
See the discussion at :
http://bugzilla.scilab.org/process_bug.cgi
Best regards,
Michaël Baudin
Le 17/01/2011 16:10, Michaël Baudin a écrit :
Hi,
Ok, now I remember, it is there :
http://forge.scilab.org/index.php/p/number/source/tree/HEAD/macros/number_ismember.sci
Unfortunately, I have not released this function in the binary
release yet.
Here is a simplified version:
function tf = number_ismember ( a , s )
// Array elements that are members of set.
//
// Calling Sequence
// tf = number_ismember ( a , s )
//
// Parameters
// a : a ma-by-na matrix
// s : a 1-by-ns matrix
// tf : a ma-by-na matrix of booleans, tf(i,j) is %t if
there is an entry in s matching a(i,j).
//
// Description
// Search in a the entries which are in s.
//
// Uses vectorized statements, based on the Kronecker
product.
// The intermediate memory required is ma*na*ns.
//
// Examples
// a = (1:5)'
// s = [0 2 4 6 8 10 12 14 16 18 20]
// tf = number_ismember ( a , s )
// expected = [%f %t %f %t %f]'
//
// // An example with a matrix
// a = [
// 7 35 14 86 76
// 15 51 24 96 49
// 35 40 46 35 93
// 85 34 74 82 22
// ];
// s = [51 74 22 15 86]
// tf = number_ismember(a, s)
//
// Authors
// Copyright (C) 2010 - DIGITEO - Michael Baudin
//
// Check size
// a can have any shape
if ( s==[] ) then
tf=(ones(a)==zeros(a))
return
end
//
// Check content
// Nothing to do.
//
// Proceed...
if ( a==[] ) then
tf=[]
return
end
//
// Convert a into a column vector
ma = size(a,"r")
na = size(a,"c")
a=a(:)
//
ns = size(s,"c")
sp = s .*. ones(na*ma,1)
ap = a .*. ones(1,ns)
tf = or(ap==sp,"c")
//
// Convert tf into the same shape as a
tf=matrix(tf,ma,na)
endfunction
This is an example:
--> a = [
--> 7 35 14 86 76
--> 15 51 24 96 49
--> 35 40 46 35 93
--> 85 34 74 82 22
--> ];
--> s = [51 74 22 15 86]
s =
51. 74. 22. 15. 86.
--> tf = number_ismember(a, s)
tf =
F F F T F
T T F F F
F F F F F
F F T F T
Best regards,
Michaël
Le 16/01/2011 19:56, dragomir nedeltchev a écrit :
thank you very
much
--- On Sun, 1/16/11, Samuel Gougeon <Samuel.Gougeon at univ-lemans.fr>
wrote:
From: Samuel Gougeon <Samuel.Gougeon at univ-lemans.fr>
Subject: Re: [scilab-Users] Matlab ismember
To: users at lists.scilab.org
Date: Sunday, January 16, 2011, 6:21 PM
Hello,
dragomir nedeltchev <dnedelchev65 at yahoo.com>
a écrit :
> Hi, Can you help me replicate MATLAB's
ismember in SciLab? Thanks. Drago
You may read the followinf thread:
http://lists.scilab.org/cgi-bin/ezmlm-browse?list=users&cmd=threadindex&month=200911&threadid=epdldcdicfagcdofccbc
When you have well defined keywords as here, you
should use them to search
through the archives:
http://lists.scilab.org/cgi-bin/ezmlm-browse?list=users&cmd=search
Regards
Samuel
--
Michaël Baudin
Ingénieur de développement
michael.baudin at scilab.org
-------------------------
Consortium Scilab - Digiteo
Domaine de Voluceau - Rocquencourt
B.P. 105 - 78153 Le Chesnay Cedex
Tel. : 01 39 63 56 87 - Fax : 01 39 63 55 94
--
Michaël Baudin
Ingénieur de développement
michael.baudin at scilab.org
-------------------------
Consortium Scilab - Digiteo
Domaine de Voluceau - Rocquencourt
B.P. 105 - 78153 Le Chesnay Cedex
Tel. : 01 39 63 56 87 - Fax : 01 39 63 55 94
--
Michaël Baudin
Ingénieur de développement
michael.baudin at scilab.org
-------------------------
Consortium Scilab - Digiteo
Domaine de Voluceau - Rocquencourt
B.P. 105 - 78153 Le Chesnay Cedex
Tel. : 01 39 63 56 87 - Fax : 01 39 63 55 94
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20110117/03a20557/attachment.htm>
More information about the users
mailing list