忍者ブログ
日々の研究生活のメモ書きなど


ずっと同じエラーで進まなかったけど、やっと理解できた

出てたエラーは
error: subscript indices must be either positive integers or logicals.


何が悪いのかわからなったけど、
どうやら配列の引数には正の整数を入れないとだめらしい
つまり hoge[0] はエラーで hoge[1] とか hoge[2] はおーけー

Cと違うぅぅぅぅぅぅぅぅぅぅぅー


■ 参考

http://stackoverflow.com/questions/15304436/octave-error-subscript-indices-must-be-either-positive-integers-or-logicals







PR
例えば何かのcatalogデータを読み込んでくる

1列目と3列目をかけ算したい

しかしうまく行かない

しょうがないからfor文で書く
octave的にはこのセンスは相当やばい + 計算に時間がかかるらしいが、どうしてもうまくいかないからしょうがないんです・・・・


ベクトルhogeに関する計算をしたいとき、
for i=i:length(hoge)
%hogeに関する何か
end
endを忘れないこと。









どうやら
figure
と打つと、新しくplotするための画面を開いてくれるらしい


■ 疑問
1. 新しくfigureで画面を開くともうひとつ前のものは編集できない?
figure
loglog(hoge1, foo1);
hold on;
loglog(hoge2, foo2);
で重ね書きも可能






一度書いたグラフを画像にしようと思ったらprintコマンドを使えばいいらしい
print -dpng hoge.png
出力できるフォーマットは
help print
で確認可能






リニアでplotしたいときは
plot(x, y)
plotするときの記号などを指定することもできる

■ 参考
17.1 2次元プロット
http://www.obihiro.ac.jp/~suzukim/masuda/octave/html/octave_80.html





logの場合
semilogx
semilogy
使い方はplotとかと同じ






■ legend
legend('A','B',C','Location','SouthEast');

最後のSouthEastは他の方角に変えてもおーけー
それぞれlegendの表示位置が変わる













ただの備忘録です

■ addpath他
addpath(genpath(pwd));
カレントディレクトリをサーチパスに追加している
要するに、パスに追加しているようなものか?




■ find

find()関数は引数Xの中から0でない要素の位置をIDXで返す。
Xはベクトルでも可

↓が詳しい

find関数の使い方



■ zeros, ones

zeros(n)とかで0しか入っていないn×nの正方行列を返す

似たようなものでonesがある
こっちはすべて1しか入っていない行列が返ってくる

どちらも書き方によって、1行n列とかも可能




■ rand

0 から 1 の一様乱数を要素に持つ行ベクトル: rand
「rand(1, m)」のように書く.m は列数.

rand(2, 2)だと乱数の値を持った2×2の正方行列が返ってくる



■ randn

平均 0 分散 1 の正規分布の乱数を要素に持つ行ベクトルは
「randn(1, m)」のように書く.m は列数.




■ eye

単位行列を返す
eye(3)だと3×3の正方行列が返ってくる



■ .'

行列、ベクトルを転置したいときに使う
ピリオド + シングルコーテーション








function y = cal_PSD(det)
#detを使った関数なにか
endfunction


引数は2つでもおーけー
その場合はcal_PSD(x, y)のようにカンマで区切る

■ 参考
10 関数定義




UNIXコマンドでいうmvをoctaveの中でそのまま使えるようにできないかと調べてみた

とりあえず楽な方法が見つからなかったので、
octaveのコマンドを使う

rename(old_name, new_name)


■ 参考
34.2 ファイルシステムユーティリティ


至急必要に迫られたのでoctaveの使い方について勉強中。


インストール方法は長くなるので割愛
mac portでは無理でした




■ 四則演算

+ - * / とか一通り使える
まずは単純に打ち込んでみよう





■ 行列とベクトル

たぶん今回は使わないけど・・・・


c = [1 2 ; 3 4]
d = [5 ; 6]

のようにセミコロンで行列内の改行を意味する


行列やベクトル同士の四則演算は c*d でおけ


行列のある要素を取り出すときは
c(2, 1)
ans = 3



行列の要素に直接代入するときは
c(2,1)=5



要素を1行まるごと取り出したいときは
c( : , 1)
ans =
1
3


ベクトルのスカラー倍もできる
5*c
ans =
5 10
15 20

HOME |
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞、登山
出身:大阪府の南の田舎
自己紹介:
import MyProfile
import coffee_pote from TWITTER
import amazonのほしい物リスト from WISH_LIST

print "python versionにしてみた"
print "python 勉強中"

print "猿でもわかるgnuplot を執筆中"

# 最終更新 2018/11/14
カウンター
ブログ内検索
ツイートするボタン
リンク
相互リンク募集中です (Twitterにてお知らせください)

Demo scripts for gnuplot version 5
(gnuplotのさまざまなデモ画像と作り方がまとめられている、眺めているだけでできるようになった気分になれる)

gnuplotスクリプトの解説
(米澤進吾さんの個人ページ、gnuplotと言えばこのかた)

gnuplot のページ
(Takeno Lab、うちのブログがリンクされていたのでリンク返し)

とある物理の院生日誌~院生は社会へ旅立った~
(研究室の先輩の個人ブログ)

英語例文を見て自然に英語・英会話を学ぶ
(楠本慶ニさんの個人ページ、様々な情報の密度の高さに感動)

Twitterから映画の評価が分かる & 映画の鑑賞記録が残せる coco
(映画の感想をまとめられるサイト、いつもお世話になっています)

Astronomy Picture of the Day Archive
(天文や宇宙関連の最新の話題について画像とともにNASAが説明しているページ)

今日のほしぞら
(任意の時刻の空で見える星を表示してくれる、国立天文台が管理している)

GNUPLOTとアニメーション
(応用の項目の「見せてあげよう!ラピュタの雷を!!」あたりからすごすぎる)

読書メーター
(読んだ本をリストできる便利なサイト)

Flickr

Template "simple02" by Emile*Emilie
忍者ブログ [PR]