[Scilab-users] Find the position of vector in another vector

2014-07-22 Thread an.lld
hello scilab users, 

i have a problem, i'm trying to find a vector into another vector. my vector
looks like this: 
A=[7  342  75  36  36  36  9  64  213  82  36  36  36  9  72]

i would like to find the position of the under vector 
B=[36 36 36] in A
so that i get a vector C=[4 11]... (4 and 11 are the positions where the
vector B begins).

i have already tried: [v,ka,kb]=intersect(A,B), but this function searches
only the first occur of 36 in A.
has somebody  an idea how i can realize that?

sorry, for my bad english.



--
View this message in context: 
http://mailinglists.scilab.org/Find-the-position-of-vector-in-another-vector-tp4030943.html
Sent from the Scilab users - Mailing Lists Archives mailing list archive at 
Nabble.com.
___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


Re: [Scilab-users] Xocs : enabled superblocks and multi frequence diagram

2014-07-22 Thread Quentin Mazué
Hi Serge,

Thanks for your help it works.

Your 1st solution wasn't applicable in my case because my blocks at 10 and
1000Hz don't have the same equations inside.

Your 2nd solutions works fine. Enclosed a full diagram to perform some
simple speed evaluations if anyone need it.

Multi_Freq_Test.zip
http://mailinglists.scilab.org/file/n4030944/Multi_Freq_Test.zip  

Thanks
Quentin Mazué



--
View this message in context: 
http://mailinglists.scilab.org/Xcos-enabled-superblocks-and-multi-frequence-diagram-tp4030940p4030944.html
Sent from the Scilab users - Mailing Lists Archives mailing list archive at 
Nabble.com.
___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


Re: [Scilab-users] Find the position of vector in another vector

2014-07-22 Thread Serge Steer
One can use the Morris and Pratt algrithme 
(http://www.liafa.jussieu.fr/~carton/Enseignement/Algorithmique/Programmation/Pattern/MorrisPratt/)
I give you a Scilab code of this algorithm. But it should be more 
efficient to add a builtin using the C code given at


http://www.liafa.jussieu.fr/~carton/Enseignement/Algorithmique/Programmation/Pattern/MorrisPratt/pattern.c


Le 22/07/2014 11:38, an.lld a écrit :

hello scilab users,

i have a problem, i'm trying to find a vector into another vector. my vector
looks like this:
A=[7  342  75  36  36  36  9  64  213  82  36  36  36  9  72]

i would like to find the position of the under vector
B=[36 36 36] in A
so that i get a vector C=[4 11]... (4 and 11 are the positions where the
vector B begins).

i have already tried: [v,ka,kb]=intersect(A,B), but this function searches
only the first occur of 36 in A.
has somebody  an idea how i can realize that?

sorry, for my bad english.



--
View this message in context: 
http://mailinglists.scilab.org/Find-the-position-of-vector-in-another-vector-tp4030943.html
Sent from the Scilab users - Mailing Lists Archives mailing list archive at 
Nabble.com.
___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users



function ind=morrisPratt(sequence,pattern)

// Calcul de la fonction de suppléance s
// Pour tout i  0, s[i] est la longueur bord maximal du 
// préfixe de longueur i du motif, c'est-à-dire p_0 ... p_{i-1}.
// Pour un préfixe w du motif, on a |bord(w)| = s[|w|].
// On a donc |bord^2(w)| = s[|bord(w)|] = s[s[|w|]].
// Les longueurs des bords d'un préfixe w sont donc les valeurs
// s[|w|], s[s[|w|]], s[s[s[|w|]]] ...
  m=length(pattern)
  n=length(sequence)
  ind=[];
  i=-1;
  s(1) = -1;
  for j = 1:m
while i = 0  pattern(i+1)  pattern(j-1)
  i = s(i+1);
end
s(j) = i+1;
  end
  // Recherche du motif
  
  j = 0;
  while jn 
i = 0;
while i  m  jn
  if pattern(i+1) == sequence(j+1) then
// Si les deux caractères coïncident, 
// les deux curseurs avancent d'une position vers la droite.
j=j+1;
i=i+1;
  else
if i==0 then
  j=j+1;
else
  i = s(i+1);
end
  end
end
if i == m then
  // Occurrence trouvée en position j-i
  ind=[ind j-i+1];
else
  // Aucune occurrence
  break
end
  end
endfunction

___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users