Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português -

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Scilab > insertion

insertion

変数への部分的な代入または修正

assignation

変数への部分的な代入

呼出し手順

x(i,j)=a
x(i)=a
l(i)=a
l(k1)...(kn)(i)=a または l(list(k1,...,kn,i))=a
l(k1)...(kn)(i,j)=a または l(list(k1,...,kn,list(i,j))=a

パラメータ

x

任意の型の行列 (定数, 疎行列, 多項式,...)

l

リスト

i,j

添え字

k1,...kn

整数値の添え字

a

新しいエントリの値

説明n

行列の場合

x が行列の場合, 添え字 i および j, は次のようになります:

実数のスカラーまたはベクトルまたは行列

この場合,添え字として指定される値は正である必要があり, その整数部のみが使用されます.

  • a が次元 (size(i,'*'),size(j,'*'))の行列の場合, x(i,j)=a は, lを1から size(i,'*'), kを1から size(j,'*')として x(int(i(l)),int(j(k)))=a(l,k)となるような 新たな行列 xを返します. xのその他の初期エントリは変更されません.

  • a がスカラーの場合, x(i,j)=a は, lを1からsize(i,'*'), kを1からsize(j,'*')として, x(int(i(l)),int(j(k)))=aとなるような 新しい行列 x を返します. xのその他の初期エントリは変更されません.

  • i または j の最大値が対応する行列 xの次元の最大値を 超える場合,配列 xは,必要な次元まで事前に拡張されます. この際,標準の行列の場合は0,文字列行列の場合は長さ0の文字列, 論理値行列の場合は 値false,をエントリとして拡張されます.

  • x(i,j)=[] は, jxの全ての列にマッチする 場合,iで指定した行を削除します. また,ixの全ての行にマッチする 場合,jで指定した列を削除します. その他の場合,x(i,j)=[]はエラーを発生します.

  • あるベクトルaを指定したx(i)=aは, lを1からsize(i,'*')として, x(int(i(l)))=a(l)となるような新しい行列x を返します. xのその他の初期エントリは変更されません.

  • あるスカラーaを指定したx(i)=aは, lを1からsize(i,'*')として, x(int(i(l)))=aとなるような新しい行列x を返します. xのその他の初期エントリは変更されません.

    iの最大値がsize(x,1)より大きくなる場合, 配列 xは,必要な次元まで事前に拡張されます. この際,標準の行列の場合は0,文字列行列の場合は長さ0の文字列, 論理値行列の場合は 値false,をエントリとして拡張されます.

    x が 1x1行列 の場合,

    a は,次元 size(i,'*')を有する 行 (各要素が1列) ベクトルとなります. 結果として,行列xは行ベクトル (各要素が1列)となります.

    x が行ベクトルの場合,

    a は次元size(i,'*') を有する行ベクトルである必要があります.

    x が列ベクトルの場合,

    a は次元size(i,'*') を有する列ベクトルである必要があります.

    x が一般の行列の場合,

    a は次元がsize(i,'*')の 行または列ベクトルである必要があります. また,iの最大値はsize(x,'*') を超えることはできません.

  • x(i)=[]は, iで指定したエントリを削除します.

: 記号

:記号は"全ての要素"を意味します.

  • x(i,:)=aは, x(i,1:size(x,2))=aと解釈されます.

  • x(:,j)=aは, x(1:size(x,1),j)=aと解釈されます.

  • x(:)=a は, 行列aをxの次元に変形した xを返します. size(x,'*') は, size(a,'*')に等しい必要があります.

論理値のベクトル

添え字 (i または j )が 論理値のベクトルの場合,それぞれfind(i)または find(j)として解釈されます.

多項式

添え字 (i または j )が 多項式のベクトルまたは暗黙の多項式ベクトルの場合, それぞれ horner(i,m)またはhorner(j,n) と解釈されます. ただし,m およびnxの次元です. この機能は全ての多項式で動作しますが, 可読性の維持のため,$の中で多項式を使用することを 推奨します.

listまたはtlistの場合
  • 指定された場合, kilデータ構造 のサブリストのエントリへのパスを指定します. これにより,中間的なコピーをすることなく再帰的な挿入が 可能になります. 命令l(k1)...(kn)(i)=aおよび l(list(k1,...,kn,i)=a)は 以下のように解釈されます:

    lk1 = l(k1) .. = ..

    lkn = lkn-1(kn) lkn(i) = a

    lkn-1(kn) = lkn .. = .. l(k1) = lk1

    命令l(k1)...(kn)(i,j)=a および l(list(k1,...,kn,list(i,j))=a は以下のように解釈されます:

    lk1 = l(k1) .. = ..

    lkn = lkn-1(kn) lkn(i,j) = a

    lkn-1(kn) = lkn .. = .. l(k1)= lk1

  • i は以下のようになります :

    • 実数の非負のスカラー. l(0)=aはリストの"左"にエントリを追加します. l(i)=aはリストのi番目の エントリにaを設定します. i>size(l)の場合, lは長さ0のエントリ(未定義)で事前に拡張されます. l(i)=null() は, i番目の リストのエントリを削除します.

    • 多項式. i が多項式の場合, horner(i,m)として解釈されます. ただし, m=size(l)です. この機能は全ての多項式で動作しますが, 可読性の維持のため,$の中で多項式を使用することを 推奨します.

  • k1,..kn は次のようになります :

    • 実数の正のスカラー.

    • 多項式,horner(ki,m)として解釈されます. ただし,mは対応するサブリストの大きさです.

    • サブリストのエントリ名を指す文字列.

注意

有理関数や状態空間線形システムのようにソフトウエアで作成される行列の型の場合, リストの要素の展開と区別できないため, x(i) 構文をベクトル要素の挿入には使用できない可能性が あります. この場合, x(1,j) または x(i,1)構文を使用する必要があります.

// MATRIX CASE
a=[1 2 3;4 5 6]
a(1,2)=10
a([1 1],2)=[-1;-2]
a(:,1)=[8;5]
a(1,3:-1:1)=[77 44 99]
a(1)=%s
a(6)=%s+1
a(:)=1:6
a([%t %f],1)=33
a(1:2,$-1)=[2;4]
a($:-1:1,1)=[8;7]
a($)=123
//
x='test'
x([4 5])=['4','5']
//
b=[1/%s,(%s+1)/(%s-1)]
b(1,1)=0
b(1,$)=b(1,$)+1
b(2)=[1 2] // the numerator
// LIST OR TLIST CASE
l=list(1,'qwerw',%s)
l(1)='Changed'
l(0)='Added'
l(6)=['one more';'added']
//
//
dts=list(1,tlist(['x';'a';'b'],10,[2 3]));
dts(2).a=33
dts(2)('b')(1,2)=-100

参照

  • find — 論理値ベクトルまたは行列のtrue要素の添え字を見つける
  • horner — 多項式/有理数の評価
  • parents — ( ) 左および右括弧
  • extraction — 行列およびリストのエントリの展開
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Mar 03 11:00:47 CET 2011