1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2008 - INRIA
*
* This file must be used under the terms of the CeCILL.
* This source file is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at
* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
*
-->
<refentry version="5.0-subset Scilab" xml:id="intersect" xml:lang="en"
xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ns5="http://www.w3.org/1999/xhtml"
xmlns:mml="http://www.w3.org/1998/Math/MathML"
xmlns:db="http://docbook.org/ns/docbook">
<info>
<pubdate>$LastChangedDate$</pubdate>
</info>
<refnamediv>
<refname>intersect</refname>
<refpurpose>returns the vector of common values of two
vectors</refpurpose>
</refnamediv>
<refsynopsisdiv>
<title>Calling Sequence</title>
<synopsis>
[v [,ka,kb]]=intersect(a,b)
[v [,ka,kb]]=intersect(a,b,orient)
</synopsis>
</refsynopsisdiv>
<refsection>
<title>Parameters</title>
<variablelist>
<varlistentry>
<term>a</term>
<listitem>
<para>vector of numbers or strings</para>
</listitem>
</varlistentry>
<varlistentry>
<term>b</term>
<listitem>
<para>vector of numbers or strings</para>
</listitem>
</varlistentry>
<varlistentry>
<term>orient</term>
<listitem>
<para>flag with possible values : 1 or "r", 2 or "c"</para>
</listitem>
</varlistentry>
<varlistentry>
<term>v</term>
<listitem>
<para>row vector of numbers or strings</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ka</term>
<listitem>
<para>row vector of integers</para>
</listitem>
</varlistentry>
<varlistentry>
<term>kb</term>
<listitem>
<para>row vector of integers</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para><literal>intersect(a,b)</literal> returns a sorted row vector of
common values of two vectors of <literal>a</literal> and
<literal>b</literal>.</para>
<para><literal>[v,ka,kb]=intersect(a,b)</literal> also returns index
vectors <literal>ka</literal> and <literal>kb</literal> such that
<literal>v=a(ka)</literal> and <literal>v=b(kb)</literal>.</para>
<para><literal>intersect(a,b,"r")</literal> or
<literal>intersect(a,b,1)</literal>returns the matrix formed by the
intersection of the unique rows of <literal>a</literal> and
<literal>b</literal> sorted in lexicographic ascending order. In this case
matrices <literal>a</literal> and <literal>b</literal> must have the same
number of columns.</para>
<para><literal>[v,ka,kb]=intersect(a,b,"r")</literal> also returns index
vectors <literal>ka</literal> and <literal>kb</literal> such that
<literal>v=a(ka,:)</literal> and <literal>v=b(kb,:)</literal>.</para>
<para><literal>intersect(a,b,"c")</literal> or
<literal>intersect(a,b,2)</literal>returns the matrix formed by the
intersection of the unique columns of <literal>a</literal> and
<literal>b</literal> sorted in lexicographic ascending order. In this case
matrices <literal>a</literal> and <literal>b</literal> must have the same
number of rows.</para>
<para><literal>[v,ka,kb]=intersect(a,b,"c")</literal> also returns index
vectors <literal>ka</literal> and <literal>kb</literal> such that
<literal>v=a(:,ka)</literal> and <literal>v=b(:,kb)</literal>.</para>
</refsection>
<refsection>
<title>Remark</title>
<para>NaN are considered as different from themselves so they are excluded
out of intersection in case of vector intersection.</para>
</refsection>
<refsection>
<title>Examples</title>
<programlisting role="example"><![CDATA[
A=round(5*rand(10,1));
B=round(5*rand(7,1));
intersect(A,B)
[N,ka,kb]=intersect(A,B)
intersect('a'+string(A),'a'+string(B))
intersect(int16(A),int16(B))
//with matrices
A = [0,0,1,1 1;
0,1,1,1,1;
2,0,1,1,1;
0,2,2,2,2;
2,0,1,1,1;
0,0,1,1,%nan];
B = [1,0,1;
1,0,2;
1,2,3;
2,0,4;
1,2,5;
%nan,0,6];
[v,ka,kb] = intersect(A,B,'c')
A(:,ka)
]]></programlisting>
</refsection>
<refsection>
<title>See Also</title>
<simplelist type="inline">
<member><link linkend="unique">unique</link></member>
<member><link linkend="gsort">gsort</link></member>
<member><link linkend="union">union</link></member>
</simplelist>
</refsection>
</refentry>
|