goo blog サービス終了のお知らせ 

korondemoのメモ

記憶の助けとして

データの型

2006-05-07 10:50:54 | Scilab
定数の型
typeof(123)

倍精度浮動小数点で表現できる最大値
mtlb_realmax

最小値
mtlb_realmin

整数型
a=int16(123)
typeof(a)
b=int32(a)
typeof(b)

演算結果のデータ型
a=uint32(123)
b=uint32(345)
c=(a+b)*(b-a)
typeof(c)

オーバーフローすると他の数値に
uint8(300)

整数型に変換すると小数点以下は切り捨て
uint32(123.567)

数値の丸め
a=1.23
[ceil(a) floor(a) round(a) fix(a)]
b=-1.56
[ceil(b) floor(b) round(b) fix(b)]

数値表示のフォーマット
a=1.2345678
format('v',11)
a
format('e',15)
a

16進数への変換
dec2hex(255)

論理演算
a=[1 2 3]
b=[1 0 5]
a&b
a|b

function c=xor(a,b)
c=a&~b|~a&b

a==b
c=a>b
typeof(c)
d=bool2s(c)
typeof(d)

行列の生成

2006-05-05 20:00:52 | Scilab
単位行列
eye(3,3)

乱数の行列
rand(3,3)

正規分布の乱数
rand(3,3,'normal')

下三角部分を取り出し下三角行列を生成
tril(rand(3,3))

上三角行列を生成
triu(rand(3,3))

対角行列を生成
diag(1:3)

主対角要素以外
diag(1:2,-1)

対角要素を取り出した行列を生成
A=rand(3,3)
diag(A)

主対角要素以外
diag(A,1)

ブロック対角行列を生成
sysdiag(1,[2 3;4 5],6,[7:9;10:12;13:15])

対称行列を生成
toeplitz(1:4)

行列の結合
a=[1 2;3 4];
b=[5 6];
c=[7 8;9 10;11 12];
[[a;b] c]

スパース行列

2006-05-05 19:28:53 | Scilab
スパース行列を作成
a=sparse([(1:4)' (1:4)'],1:4,[4 5])

スパース行列をフル行列に
b=full(a)

スパース行列の単位行列を作成
speye(10000,10000)

スパース行列同士の演算
a=sparse(eye(3,3));
b=sparse(mtlb_fliplr(eye(3,3)));
c=(a+2*b)*(b-a)

mtlb_fliplr: 行列の列を左右反転

乱数でスパース行列を作成
sprand(r,c,f)
引数f: 非ゼロ要素の割合

スパース行列に
isequal
は使えないようです.

一時停止 halt,pause,xpause(即戦力ツールブック)

2006-05-02 11:36:07 | Scilab
x=0:0.1:100;
n=1;
while n<=10
y=x.^n;
plot(x,y)
printf('y=x^%d wo purotto simasitann',n);
n=n+1;
halt()
clf()
end

halt()
ところで一時停止します.
Enterキーで再開です.

halt()
ではなく
pause()
とした場合は
再開するには
return
と入力します.
abort
と入力すると中止です.

xpause(時間)
とすると時間分待ちます.
単位はマイクロ秒ですから
たとえば 2 秒待ちたい場合は
xpause(2000000)
です.
ただしなぜか Graphic が一つ起ち上がってしまいます.