* Bug 14873 fixed [doc]: setfield page fixed updated clarified
[scilab.git] / scilab / modules / data_structures / help / ja_JP / setfield.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) 2006-2008 - INRIA
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  * Copyright (C) 2020 - Samuel GOUGEON
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17           xmlns:svg="http://www.w3.org/2000/svg" xmlns:db="http://docbook.org/ns/docbook"
18           xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="setfield">
19     <refnamediv>
20         <refname>setfield</refname>
21         <refpurpose>mlist, tlist, またはlistの要素の値を変更する</refpurpose>
22     </refnamediv>
23     <refsynopsisdiv>
24         <title>呼び出し手順</title>
25         <synopsis>uL = setfield(a, v, L)</synopsis>
26     </refsynopsisdiv>
27     <refsection>
28         <title>パラメータ</title>
29         <variablelist>
30             <varlistentry>
31                 <term>L</term>
32                 <listitem>
33                     <literal>list</literal>, <literal>tlist</literal>,
34                     または<literal>mlist</literal>リスト:コンポーネントを変更する必要があるリスト.
35                     <para/>
36                 </listitem>
37             </varlistentry>
38             <varlistentry>
39                 <term>a</term>
40                 <listitem>
41                     変更するコンポーネントのアドレス. 文字列として指定されたフィールド名,
42                     または正の整数として指定されたインデックスのいずれかになります.
43                     詳細については, <link linkend="insertion">insertion</link>をご覧ください.
44                     <para/>
45                 </listitem>
46             </varlistentry>
47             <varlistentry>
48                 <term>v</term>
49                 <listitem>
50                     任意のScilabオブジェクト:割り当てる値
51                     <para/>
52                 </listitem>
53             </varlistentry>
54             <varlistentry>
55                 <term>uL</term>
56                 <listitem>
57                     更新されたリスト
58                     <para/>
59                 </listitem>
60             </varlistentry>
61         </variablelist>
62     </refsection>
63     <refsection>
64         <title>説明</title>
65         <para>
66             <literal>L=setfield(a,v,L)</literal> addresses and changes the
67             i<superscript>th</superscript> element of a list, in a unified way
68             over lists, tlists and mlists.
69         </para>
70         <para>
71             For simple lists and for tlists, <literal>L=setfield(a,v,L)</literal>
72             is equivalent to <literal>L(a)=v</literal>, that is simpler and should be preferred.
73             The same stands for any mlist if the address <varname>a</varname> is a
74             field's name.
75         </para>
76         <para>
77             However, for any mlist L, if <literal>i</literal> is an index, the insertion
78             <literal>L(i)=v</literal> is not predefined, in order to let the user define
79             an overload implementing a matrix-oriented insertion, if required.
80             Yet <literal>setfield(i,v,L)</literal> is always defined, with the same meaning as
81             for other list and tlist types.
82         </para>
83     </refsection>
84     <refsection>
85         <title>例</title>
86         <para>
87             For a tlist, <literal>setfield(3, v, T)</literal> is equivalent to
88             <literal>T(3)=v</literal> :
89         </para>
90         <programlisting role="example"><![CDATA[
91 T = tlist(['V','a','b'], [%z (1-%z) %z^2], [%f %t %t]);
92 // The insertion is predefined:
93 T(3) = [%t %t %f];
94 T(3)
95
96 T = setfield(3, [%f %t %f], T);
97 T(3)
98  ]]></programlisting>
99     <screen><![CDATA[
100 --> T = tlist(['V','a','b'], [%z (1-%z) %z^2], [%f %t %t]);
101 --> // The insertion is predefined:
102 --> T(3) = [%t %t %f];
103 --> T(3)
104  ans  =
105   T T F
106
107 --> T = setfield(3, [%f %t %f], T);
108 --> T(3)
109  ans  =
110   F T F
111 ]]></screen>
112         <para>
113             For a mlist, there is no predefined indexed insertion routine, to let
114              the user define a matrix-oriented insertion overload if required.
115         </para>
116         <programlisting role="example"><![CDATA[
117 M = mlist(['V','a','b'], [%z (1-%z) %z^2], [%f %t %t]);
118 M.b = [%t %t %t];
119 M.b                 // OK, while ...
120 M(3) = [%f %t %f];  // => error
121
122 // But a raw direct insertion with setfield() is always possible:
123 M = setfield(3, [%t %f %t], M);
124 getfield(3, M)
125  ]]></programlisting>
126     <screen><![CDATA[
127 --> M = mlist(['V','a','b'], [%z (1-%z) %z^2], [%f %t %t]);
128 --> M.b = [%t %t %t];
129 --> M.b                 // OK, while ...
130  ans  =
131   T T T
132
133 --> M(3) = [%f %t %f];  // => error
134 Function not defined for given argument type(s),
135   check arguments or define function %b_i_V for overloading.
136
137 --> // But a raw direct insertion with setfield() is always possible:
138 --> M = setfield(3, [%t %f %t], M);
139 --> getfield(3, M)
140  ans  =
141   T F T
142 ]]></screen>
143     </refsection>
144     <refsection role="see also">
145         <title>参照</title>
146         <simplelist type="inline">
147             <member>
148                 <link linkend="insertion">insertion</link>
149             </member>
150             <member>
151                 <link linkend="getfield">getfield</link>
152             </member>
153         </simplelist>
154     </refsection>
155     <refsection>
156         <title>履歴</title>
157         <revhistory>
158             <revision>
159                 <revnumber>6.0.0</revnumber>
160                 <revdescription>
161                     <itemizedlist>
162                         <listitem>
163                             The updated list is now returned, instead of being changed "in place".
164                         </listitem>
165                         <listitem>
166                             setfield() can no longer be used for cells arrays.
167                         </listitem>
168                     </itemizedlist>
169                 </revdescription>
170             </revision>
171         </revhistory>
172     </refsection>
173 </refentry>