データ解析ツールoctaveを語ろうat UNIX
データ解析ツールoctaveを語ろう - 暇つぶし2ch252:名無しさん@お腹いっぱい。
06/06/25 16:16:16
>>40のleastsqr.m を動かそうとしているんだけど、なかなかうまくいかない。
なにをやったか書くので、なにがいけないのか、分かる人がいたら教えてください。

x=[1 2 3 4 5];
y=[1 3 6 7 8];
function ret=F(x,p)
ret = p(1)*x*x + p(2)*x + p(3);
endfunction
pin=[1 1 1];
[f,p]=leasqr(x,y,pin,"F")

といった形で実行させると、
error: input(x)/output(y) data must have same number of rows
といったエラーが出る。leastsqr.mのソースを見ると、

% check data vectors- same length?
m=length(y); n=length(pin); p=pin;[m1,m2]=size(x);
if m1~=m ,error('input(x)/output(y) data must have same number of rows ') ,end;

といった箇所があって、m=length(y)と[m1,m2]=size(x)のm1を比較している。
つまり、上の例だとmが5となり、m1が1となるので、両者がマッチしない。
だから、エラーになったということのようだった。

このあたり、データの与え方が間違っているのかと思って転置行列 x' で
実行させてみたりしたけれど、なかなかうまくいかない。Octave のバージョンは、

GNU Octave, version 2.1.53 (powerpc-apple-darwin7.5.0).
GNU Octave, version 2.1.69 (i386-pc-linux-gnu).

両者とも同じ結果だった。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch