アットウィキロゴ

octave

数列とかの計算に結構特化してる




楽に動かす方法


○○○.mならoctaveを起動して,○○○と打ち込めば書いてある順番に実行する.


関数化


function *****

と最初に書く(*****はなんか関数名で)

endfunction

と最後に書いておく

別のプログラムないで*****と書けばそれを実行する.


例 test1.m

function y = test1(x)

y=x*100;

endfunction


このプログラムを作っておき,他のプログラム内に書く.例えば

test1(20)

と書くと

ans = 2000

となる.20でなく変数でもおっけー.

よく使うのなら関数化しておこう.書くのがめんどい時とかもね.

なんかルールがあるかもしれんがファイル名と関数名は一致させておこう


変数の書き方


f(x)=x^2+4x;

と言った感じのものをoctaveで扱うには

f=@(x)x^2+4x;

と書く





コマンドいろいろ


inv(z) zの逆行列を求める
abs(z) zの絶対値を取る
real(z) zの実数部を取る
imag(z) zの虚数部を取る
conj(z) zの共役複素数を取る
rem(x) xの余りを取る
floor(x) xの切捨て
ceil(x) xの切上げ
round(x) 四捨五入
input() 入力を促す
disp(x) xを表示する
unifrnd(x,y) xからyの範囲で乱数
sum(x) xの中身を全て足す
eig(x) 固有値 xy = λy を出す
load("x") ファイルxを読み込む
quad(x,a,b) 式xのaからbまでの積分



計算の時


A=[1 2 3] , B = [4 5 6]としたとき

A + B は
ans = [5 7 9]と出すことができるが

A * B はできない。しかし A .* Bとすれば
ans = [4 10 18]と出すことができる。

これはようするに
A.*B = [1*4 2*5 3*6]と同じ行列の部分のみで掛け算をしている。



imageの横軸を対数で


グラフならsemilogyなどでできるが,画像ではベクトルが違うとか言われてできない.
やりかた

plotなりsubplotなりでまず画像を表示
その後

get(gca)

ここで色々情報が出るが,
xscale = linear
yscale = linear
zscale = linear
というのがある,ようするにxyz軸がすべて線形スケールであると言っている.
ここでどれかをlinearからlogにすれば対数スケールになる.


y軸を対数スケールにする

set(gca,'yscale','log')

これで変わる


配列の指定の方法


例として配列Xを使う
X =

ans(:,:,1) =

       1        4        7
       2        5        8
       3        6        9

ans(:,:,2) =

      10       13       16
      11       14       17
      12       15       18

ans(:,:,3) =

      19       22       25
      20       23       26
      21       24       27




1.サブスクリプト指定

何行何列何チャンネルかで指定


X(2,3,2)
ans = 17

つまり2行3列2チャンネルの要素を取り出した

2.インデックス指定

全部まとめて何番目なのかで指定できる.
1,2,3とチャンネルは順番で続いてまとめられている


X(20)
ans = 20

Xの20番目を指定,順番はXの例ようになる





色変換

コマンド 使い方の例 補足とか
rgb2hsv Y=rgb2hsv(X/255) Xが元となるカラー画像,範囲が0~1.0なので256種類だったら255で割っておく.Y(:,:,1)がH,Y(:,:,2)がS,Y(:,:,3)がV
rgb2gray Y=rgb2gray(X) カラー画像Xをグレースケールに変換する,ちなみにRGBチャンネルのどれか一つだけにしたグレースケールではなかった
hav2rgb Y=hsv2rgb(X) hsv変換をrbg変換に戻す




eps化


print -depsc2 *****.eps カラーで
print -deps *****.eps 白黒で
最終更新:2012年11月20日 14:26
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。