[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 09/22 10:39 / Filesize : 230 KB / Number-of Response : 899
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

MATLABプログラミング 質問箱 その2



1 名前:デフォルトの名無しさん [2006/11/10(金) 11:28:22 ]
MATLAB 日本語版
www.cybernet.co.jp/matlab/
MATLAB 本家
www.mathworks.com/

Yahoo MATLAB
dir.yahoo.co.jp/Science/Mathematics/Software/MATLAB/
MATLAB入門
feedback.mech.fukui-u.ac.jp/matlab/matlab0.htm
MATLAB チュートリアル
www-isys.eei.metro-u.ac.jp/~sho/pub/ttmatlab/Index.html


280 名前:請負人 mailto:i100lao@yahoo.co.jp [2007/11/27(火) 11:59:51 ]
>>267
>>270
請負内容を見て判断したいです。詳細内容などをメールをください。
秘密厳守を守ります。

281 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 18:59:28 ]
手元にはバックプロパゲーション法の自作ソースくらいあるんだが
バカ学生に使いこなせるとは思えん

282 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 15:25:32 ]
matlab にファイル名を変えるコマンドってありましたっけ?
同時にファイル内の関数名もあわせて変えてくれるとベスト

283 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:23:21 ]
ttp://www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1303

このページの
h=plot(0,0,'.b','MarkerSize',30,'EraseMode','xor');
を使ってアニメーションを作る方法で、
同時に2つの色の違うボールを描画するにはどうすればいいのですか?

284 名前:デフォルトの名無しさん [2007/11/29(木) 23:34:51 ]
matlabで書いたグラフで、線と線に囲まれた部分の
面積を求めることは可能でしょうか。
ファイルをアップしましたので、よろしかったら見てみてください。
www.csync.net/service/file/index.html
(ファイル名はmatlabです)

画像の灰色の部分の面積を求めたいのですが、
積分のやり方もわからないのです(:_:)

あとMファイル(txtになってしまってます)のコピーが二つありますが、
mensekiの方は画像の元になるグラフが書けます。
danmenの方は、元のプログラムですが、
xの値を0〜0.5まで変えると赤と緑の線が一周するように
できているのですが、この二つの線と、黄色の線が作る面積を求めたいんです。

どんな方法でもいいのでどなたか教えてくださいm(__)m


285 名前:beta-infinite [2007/11/30(金) 00:29:49 ]
>>283
「MATLABの極」にソースをアップロードしました。いかがでしょうか
beta-infinite.blogspot.com/

286 名前:デフォルトの名無しさん [2007/11/30(金) 03:26:05 ]
教えてください。
MAT LABで書いたFigureのX軸Y軸をX→Y、Y→Xと逆にしたいのですが
どうすればいいんでしょうか?お願いします。

287 名前:283 mailto:sage [2007/11/30(金) 10:53:34 ]
>>285
ありがとうございます。
今までhold onとか使っていたんですが、こんなシンプルにいけたんですね。

ですが、シミュレーションしたものをアニメーションとして表示したいので
この方法だとどうしても描画が遅くてシミュレーションの結果通りに描画できません。
そこで>>283の方法は高速だということなので、
>>283のイレースモードxorを使う方法でのやり方を知りたいのです。

>>283の方法以外でも高速に描画できる方法をご存知の方はお願いします。

具体的にしたいことは、
・2つボールの0.001秒毎の位置が2つの配列に入っている。
・それをある時間dt秒毎に描画したい。
・1回の描画毎にpause(0.001*dt);などして時間に正確にアニメーション化したい。

自分のやり方や>>285さんのやり方だと
dtを大きくすればするほどアニメーションがゆっくりになってしまいます

288 名前:283 mailto:sage [2007/11/30(金) 10:56:39 ]
>>287の修正

× pause(0.001*dt);
○ pause(dt);



289 名前:MATLABの極 [2007/11/30(金) 12:02:44 ]
>>288
PAUSE(n) は、n秒間停止して、その後実行を続けます
当然ですが、pause(dt)のdtを大きくすれば、
アニメーションがゆっくりになってしまいます

290 名前:MATLABの極 [2007/11/30(金) 13:29:41 ]
>>286
view(90,90)という関数を使えば、いいと思います。
beta-infinite.blogspot.com/2007/11/matlabfigurexyxyyx.html
に参考

291 名前:283 mailto:sage [2007/11/30(金) 13:44:06 ]
>>289
ですが、dtを大きくするとその分荒いサンプリングをすることになるので
描画時間がdt秒に比べて十分小さければ同じようなアニメになるはずですよね
コマ送りになるかどうかの違いはあれど。
でもやはり描画時間はそこまで小さくするのは無理なのでしょうか。
MATLABではこんなことはできないのでしょうか

292 名前:MATLABの極 [2007/11/30(金) 14:04:16 ]
>>291
現状の1コマの処理時間は、
= matlabの演算時間 + 描画の時間 + pause(dt)の時間
matlabの演算時間 + 描画の時間をなくする方法は、getframe,movie,movie2avi関数で
使うといいと思います。

beta-infinite.blogspot.com/search/label/%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
に参考


293 名前:デフォルトの名無しさん [2007/11/30(金) 15:21:36 ]
beta-infinite.blogspot.comってパクリしかないじゃんかw


294 名前:MATLABの極 [2007/11/30(金) 15:45:10 ]
>>293
MATLABの修業中です。覚え書きのブログだと思っていただければ、

295 名前:283 mailto:sage [2007/11/30(金) 16:30:08 ]
>>292
やっぱgetframe,movie,movieしかないですかね
ありがとうございました

296 名前:デフォルトの名無しさん [2007/11/30(金) 17:13:21 ]
著作権違反だので、通報しました

297 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 17:57:24 ]
FFTを使って、スペクトルを計算するのって、どうすればいいの?

298 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 21:40:02 ]
だので



299 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 22:31:07 ]
>>297
help fftとコマンドを打って出てきた説明を理解できなければ
回線を切って死ぬか教授に頭を下げて教えを請いなさい

300 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 04:36:12 ]
>>297
beta-infinite.blogspot.comだけは見ないように。

301 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 12:59:02 ]
fftはtwo-sideの出力を出すので、help fftだけでは話は完結しない

302 名前:デフォルトの名無しさん [2007/12/01(土) 16:02:42 ]
教えてください。
プログラムで図を描かせたときにX,Y,Zラベルの刻みのラベルを
変更したいのですが、関数などプログラムで書かせることができるでしょうか?
少し伝わりにくい文章ですが、よろしくお願いします。

303 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:26:01 ]
なんか楽に関数名リネームする方法ねーのかよ

304 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:18:44 ]
>>303
関数名リネームって>>282が言ってるようなことか?
もしそうならファイル名と違ったらファイル名の方が優先なだけだから
コード中の関数名は適当でOK。

しかしそういう時は普通呼ぶ側のコードも変えないといけないから
どっちにしろ一括置換とかする程度の手間をはぶくのは無理なわけで
コードの頭の関数名変えるくらいの手間は取るに足らないと思うが。

305 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:52:21 ]
>>297
ここ見るといいよ
www.mathworks.com/support/tech-notes/1700/1702.shtml

306 名前:デフォルトの名無しさん [2007/12/02(日) 18:39:33 ]
>>302
できる。

307 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 06:02:50 ]
関数の入力にベルトルの集合としての行列をいれるとき皆は
NxD 派? DxN 派?where N is the number of vectors and D is the dimension of each vector.
どっちのほうが親切なんだろう?toolbox によって(人によって)違うんだよねぇ。

308 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 09:55:13 ]
シミュレート板で回答を得られなかったので。

simulinkである変数がある値になったときシミュレーションを終了したいのですが
どうすればできますか?



309 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 06:53:25 ]
ムービーを作成する際に、figureウインドウを出さずに作成することはできないでしょうか?
figureウインドウを作成してgetframeで取り込む場合、スクリーンキャプチャをしているようで、
他の作業をすると、その画像がムービーの中に入ってしまいます。
そのためムービー作成中は何も作業ができません。


310 名前:デフォルトの名無しさん [2007/12/05(水) 16:25:53 ]
DICOMファイルから画像読み込み、JPG形式で書き込みしようとしてるのですが、
X=dicomread('--.dcm');
[Y,map] = gray2ind(X);
imwrite(Y,map,'--.jpg','jpg');
とすると、colormapを使用したimshowの表示画像と異なってしまいます。
よろしくお願いします。

311 名前:デフォルトの名無しさん [2007/12/05(水) 18:06:21 ]
正の実数からなる対角行列の、各行と列について、
要素の大きさが対角成分の要素の大きさの0.5から2倍の範囲なら1で置換、
それ以外なら0で置換する、
ってforループを使わずにできるでしょうか?

312 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 23:19:50 ]
質問ばっかで誰も答えてくれない罠wwwwwwwww

313 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 00:59:41 ]
>>311
対角行列なら対角成分以外すでに全部0やん

314 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 02:21:48 ]
これぞまさに質問スレ

315 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 08:48:34 ]
vistaは2007aで正式サポートですが、2006aで動かした場合、どこかに既知の問題のようなリストはないでしょうか?


316 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 01:04:38 ]
>>307
僕はMatlabで音系のことをやってるけど、
wavwriteとかのデフォルトが行=サンプル/列=チャンネルなので、
ベクトルの集合はいつも縦長ベクトルを横にいくつか並べるというかんじ。
DxNってことになるのかな?

317 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:48:35 ]
u1=[ [ { arctan( ( 1-k ) * cot( u1*v*w ) -b*tan(u1*v*w) ) } /( 2*a) ] + ( q*π ) ] / [ { arctan( (1-k) * cot(v*w) -b*tan(v*w) ) } / (2*a) ]
u2=[ [ { arctan( ( 1-k ) * cot( u2*v*w ) -b*tan(u2*v*w) ) } /( 2*a) ] + ( r*π ) ] / [ { arctan( (1-k) * cot(v*w) -b*tan(v*w) ) } / (2*a) ]

a=sqrt(k)*(y/x-x/y)
b=k*(y/x)^2-(x/y)^2

matlab流の書き方じゃなくてすみません。

上記の連立非線型方程式からxとwを数値解として求めるプログラムをつくりたいのですが・・・

x,w 以外の値はすべて既知で、
u1,u2 は 1<u1<u2<=3 である任意の実数
q,rは 0または1
それ以外は任意の正の実数
分母は必ず正の値(になるはず)
最適解を求める際に、分子のarctan(・・・)の項が負の値になってしまう時にはqまたはrを「1」にしてπを加える
それ以外の場合にはq,rは「0」

と、こんな感じなのですが,どなたかサクっと作ってくださいませんでしょうか・・・

318 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 05:19:53 ]
秀丸用の強調定義ファイルはありませんか?



319 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:23:37 ]
matlab ってファイル読み込み関連の関数が貧弱で困った。
一行にいくつ数があるかわからないときにどうやって読み込んだらいいんだ?

ちなみにこんなファイルフォーマット
1 1:8392 2:8384.23 4:9832.82
2 2:8329 3:8389.34 5:9328.82
3 4:9838
先頭の 1,2,3 は最終的には捨てる行数
1:8392
は要素[1]に8392という値ということ。そして最初の行は 3 を飛ばして 4 に行っている。
そして最後の行は、他の行と読みこむ数が違う。


320 名前:デフォルトの名無しさん [2007/12/12(水) 10:36:23 ]
fgetlで1行まるまる読んで、strtokで切り出していくしか無いんじゃないの?Cでも普通そうだろ?

321 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 04:09:16 ]
>>319
それを一発で君の思い通りに読んでくれる
ファイル読み込み関連の関数が貧弱じゃないやつって何?
煽ってるんじゃなくて単に興味があるから知りたい。
ExcelとかRとかできるんかな?

322 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 12:21:50 ]
excelじゃ無理だね。

323 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 13:11:34 ]
figureウインドウを表示させずにムービーを作る方法を教えてください

324 名前:デフォルトの名無しさん [2007/12/13(木) 13:25:52 ]
>>319と似た質問なんですが
フリーフォーマットで他のソフトで出力されたデータを取り込みたいのですが
textreadがうまくいかず…

1
1.00000E+00 2.00000E+00 3.00000E+00 4.00000E+00 -0.40763E-13 -0.22240E-04
2
5.00000E+00 6.00000E+00 7.00000E+00 8.00000E+00 -0.84319E-13 -0.22422E-04

と並んでるデータがありまして、このデータの6つ並んだうちの
後ろ二つを取り込んで行ベクトルにしたいんです。
で、textreadを用いて

[head1,data1,data2,data3,data4,data5,data6,] = textread('ファイル名.txt', '%u %f %f %f %f %f %f')

とやってみたものの、うまくいきません。
どうやら1の後ろに何かがあるとmatlabが認識し(ホントは改行だけのはず)
data1〜6 (%fの指定部分)に0をいれとります。
そして次の行に移行し、そこではきちんとデータを拾えてます。

周波数を表す 1 と 次の行の 1.00000E+00 を取り込むとき
%u %fだとフォーマットの指定に不足があるのでしょうか??

325 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 14:21:09 ]
>>324
textread は一行ずつ読み込むんだろ?
最初の行は先頭以降何もないから0をが入っていくと。
[data1,data2,data3,data4,data5,data6,] = textread('ファイル名.txt', '%f %f %f %f %f %f')
として、奇数行と、偶数行に後でわけるとかになるんじゃね?


326 名前:デフォルトの名無しさん [2007/12/13(木) 15:38:43 ]
どうやらそのようだ、と思っていたんですが
以前同様のものを読み込んだ際に行ごとでなかったんですよね

たとえばこんなデータ

1 1 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.58726901E-12 0.55467926E-06
を読み込むとき、

[head1,head2,data1,data2,data3,space1,space1,data4,data5,data6] = textread('testATV.txt','%u %u %f %f %f %c %c %f %f %f');

で、data5,data6に
0.58726901E-12 0.55467926E-06
を格納できたんです。
これって、五つ目の%f(浮動小数点)のあとに%c(スペース)を読み込んでるので
行をまたいでも効果があることになると思うんです。

327 名前:デフォルトの名無しさん [2007/12/13(木) 15:39:32 ]
1 1 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.58726901E-12 0.55467926E-06

328 名前:デフォルトの名無しさん [2007/12/13(木) 15:41:18 ]
あああすいません、変な書き込みしてしまいました
1 1 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.58726901E-12 0.55467926E-06



329 名前:デフォルトの名無しさん [2007/12/13(木) 15:42:56 ]
どうやらうまく書き込めないのですが
1番目、2番目の1の下にはスペースが存在していて
3番目の0.00000000E+00 と下の行の0.00000000E+00 は
列がそろっています。

330 名前:ks [2007/12/16(日) 14:41:45 ]
========
教えてください。
========
1次遅れ+無駄時間要素を含む制御対象の限界感度法による
PIDパラメータをmatlab上で、どう求めるんですかね〜

========
教えてください。
========


331 名前:デフォルトの名無しさん [2007/12/21(金) 01:33:00 ]
>>329
textreadにこだわらなくてもいいんじゃないの?

332 名前:デフォルトの名無しさん [2007/12/27(木) 03:52:31 ]
matlabでfor文をまわす時
ループが終わるごとに変数をclearした方がよかったりします?

不振な挙動。。

333 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:04:36 ]
そんなことないと思うが。
それにしても、Matlabバージョンとか書かないと。

334 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 00:55:49 ]
たぶんそれはいくつかの変数を間違って使ってるかロジック間違えてるだけだ。
ちゃんと全部読み直せ。

335 名前:デフォルトの名無しさん [2008/01/07(月) 02:46:00 ]
波形処理をやっていてカーブフィッティングをしています。
fit関数を使ってフィッティングをしているのですが、
フィッティング後の曲線のパラメータが読み取れません。
fit1 =

一般モデル Exp1:
fit1(x) = a*exp(b*x)
係数(95% 信頼区間付き):
a = -10 (-10.17, -9.831)
b = -0.01371 (-0.01403, -0.01338)
こんな感じでフィッティングしたあと、bの値を使いたいのですが、
どうすれば読み取れますか?
初心者の質問ですみません。

336 名前:デフォルトの名無しさん [2008/01/08(火) 00:30:09 ]
2値化した画像をカラー画像にするにはどうしたらいいですか

337 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:51:57 ]
それはもう情報がかなりないからとても難しいあるね

338 名前:336 [2008/01/10(木) 14:39:29 ]
>>337
カラーは白黒でよいのですがそれでも無理ですか?



339 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 16:15:22 ]
>>338
それは、フォーマット変換したいと言うこと?
それとも、2値のメッシュをグレイにしたいと言うこと?

340 名前:デフォルトの名無しさん [2008/01/10(木) 22:09:11 ]
2次元座標から、各座標の点をラインで連結してプロットさせ
それを画像として処理したいのですが、現在は
plot(point(:,1),point(:,2));または
line(point(:,1),point(:,2));
pointは100*2行列、xy座標の点100個としています。
これだとプロット結果を保存しても画像のサイズが変更されてしまいます。
点と点を直線で結んでいく関数などありましたら教えていただけないでしょうか?

341 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 04:51:05 ]
行列の積で初歩の初歩的な質問だと思うのですが誰か教えてください!
10000x10の行列Aがあるとします。
A*A'だとout of memoryと出力されるのですが
A'*Aだとちゃんと計算結果が出力されます。
考えてもイマイチ理由が浮かんで来なかったのでどなたか教えてください〜!
単純な質問で失礼しました。

342 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 07:34:46 ]
前者は 10000x10000
後者は 10x10
の出力になるだろう?明らかすぐる

343 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 08:40:10 ]
これはひどい

344 名前:デフォルトの名無しさん [2008/01/11(金) 09:11:51 ]
(・A・)*(・A・)'

345 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 15:54:33 ]
ホントだwww頭悪くてすまそww
ありです。

346 名前:デフォルトの名無しさん [2008/01/12(土) 16:46:00 ]
plotで描ける線の種類を増やせないでしょうか?
6種類のデータを1枚の図に、白黒で書く、ということで困っています。

347 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 21:13:17 ]
>>346
解決しないかも知れないけどマーカと併用するのはダメなんですか
線種で区別できる程に線が絡み合ってないのならそれでいけるのではないでしょうか

348 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 22:26:34 ]
>>339
フォーマット変換のほうだと思います。



349 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 10:21:20 ]
>>348
MATLABでなくていいなら、画像ビューワでも画像エディタでもいくらでもやりようがありそうだが。
何を、何故、MATLABでやりたいのか全然判らんのだよ。

350 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:46:03 ]
>>349
MATLABで画像処理の勉強をしろといわれ、つい2値化の画像を白黒だけの
カラー画像に変えてやろうと思った。

351 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:07:40 ]
まずおめーは、白黒だけのカラー画像とかわけわかんねーことをいうな
カラー画像っつったらRGBとか3チャネルあるやつを普通は指すんだよ。

352 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:15:23 ]
あほす
R == G == B のことだろ

それより2値化の画像って何だ?
2値の画像だろ


353 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 06:03:13 ]
ステップ応答の試験をしてMATLABで伝達関数を出したいんですけど、
最小二乗でフィットさせるときの方法とかいうのが分からないので教えてください。


354 名前:デフォルトの名無しさん [2008/01/17(木) 12:20:28 ]
テキストファイルの行数を事前に知る関数はないでしょうか?


355 名前:デフォルトの名無しさん [2008/01/17(木) 17:09:55 ]
>336
エスパー回答すると、im2bw関数とかで2値化してしまった画像は、0が黒、1が白になります。
そしてどちらかの値しか取れない。
これをグレースケールの画像に変換したい場合は、0〜255の値を扱えるように拡張して、その後に掛け算をしてあげると良いです。
具体的には

BW; % 2値化された画像
I = uint8(BW)*255; % グレースケール化された画像

な、感じです。
実際は、Image Processing Toolbox内のim2uint8とかいう関数が同じ事をしているよ。
RGB化したい場合はさらに

[w,h] = size(I);
CI = zeros(w,h,3); % カラーイメージを入れるための準備
CI(:,:,1) = I; % 赤に代入
CI(:,:,2) = I; % 青に代入
CI(:,:,3) = I; % 緑に代入

…でいいはず(うろ覚え


356 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 00:32:14 ]
>>353
どういう関数系にフィットさせるの?

357 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 06:14:54 ]
>>357
よくある1次遅れ、2次遅れ、むだ時間とかいうパラメータを使った低次元伝達関数です
たとえば
G(s) = Kωn^2 / (s^2 + 2ζωns + ωn^2) * e^(-τs)
のパラメータを出したいんです

358 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 06:15:39 ]
安価ミス
× >>357
○ >>356



359 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 06:31:51 ]
あ、あと私のMATLABにはSystem Identification Toolboxが入っていないのでこれを使わない方法を教えて欲しいです。

360 名前:デフォルトの名無しさん [2008/01/18(金) 08:58:30 ]
そこまでわかっているのなら、最小自乗でフィットするだけじゃん

ttp://www.wakayama-u.ac.jp/~miw/ApIp/01/2.html

361 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 10:53:24 ]
指数関数的に減衰していくデータにフィットさせたいのですが、このように非線形の場合どのようにやればよいのでしょうか?
対数プロットでは直線になるので、何か最小自乗法のような物は使えないでしょうか?


362 名前:デフォルトの名無しさん [2008/01/18(金) 17:47:29 ]
fminsearch関数使えば?Simplex方による繰り返し計算だけど。

363 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:14:34 ]
数学的には間違いだけれども、
対数変換して直線フィットすると、ある値が出る。
それを初期値に>>362にしたがって、解を探す。

364 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:02:15 ]
>>360
ごめんなさい
その最小二乗でだけっていうところが分からないでの聞きにきたんですよね・・・

365 名前:デフォルトの名無しさん [2008/01/19(土) 12:47:42 ]
polyfit使えば一発。ただ原点に返って正規方程式を逆行列で解くのもありだな。

366 名前:デフォルトの名無しさん [2008/01/19(土) 14:03:31 ]
>>364
MATLAB以前の問題なのか…

>>365
polyfitって、フィットさせる式に制限があるからね。

367 名前:デフォルトの名無しさん [2008/01/19(土) 21:23:54 ]
>>365
ployfitって単なる多項式しか出来ないんですよね

>>366
MATLAB以前の問題かもしれないんですけど、
やるとしたらデジタルで出てきたデータをz変換してそれを行列使って最小二乗してやるということになるのでしょうか?

368 名前:デフォルトの名無しさん [2008/01/20(日) 15:18:25 ]
だから単純なたとえばy = a*x^2 + …とか>>360に書いてあることはわかるんだが、
伝達関数の場合のプロセスが分からないっていうことなのだが教えてもらえないのか?
なにを調べたらいいか分からないからここに来たんだが



369 名前:デフォルトの名無しさん [2008/01/20(日) 18:50:24 ]
>>368
あなたはどういうデータを持っていますか?
理論的には、どういう操作をしますか
どういう式にあわせて、係数を推定したいですか?

370 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:08:25 ]
わかった具体的に質問しよう
まず>>357のような伝達関数で出力されたデータを>>360のような行列表記するとどうなるのか
そもそもこのやり方以外に方法があるのならどういったものがあるのか
ということをよければ教えてくれ

371 名前:デフォルトの名無しさん [2008/01/20(日) 20:11:17 ]
実空間で解いたらいいんじゃないの?
2次の遅れ系なら解は2つの指数関数の和だろ?
それに入力パルス(今の場合e^(-τs) なのかな?)との叩き込み積分が掛かっているだけ。
それをコスト関数にしてfminsearchにかければいい。
行列表記ができるのはpolyfit関数なんかが使える線形な式のみじゃないの?

372 名前:デフォルトの名無しさん [2008/01/21(月) 13:58:02 ]
実空間でfminsearch使ったら出来そうだけど、ζの大きさによって式が変わるから、
せっかくz空間で来まった式で表現できるG(z)がもったいないなぁと思ったんですが、そんなものですか?
あと、e^(-τ*s)っていうのはむだ時間を考えたときのです。いるかいらないかは実験データを見てから決めようと思うんですけど。

今functionの使い方を勉強してる段階ですが、fminsearchでやってみます。

373 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:06:45 ]
370==372
なのか?

なにか教えてもらえると思うとすぐに下手に出るのか。

374 名前:372 [2008/01/21(月) 23:24:44 ]
というよりイライラしていたら言葉が悪くなるんだよ

375 名前:デフォルトの名無しさん [2008/01/22(火) 21:13:48 ]
問題をあなたが理解していないのでは、と思わざるを得ない。
なぜなら、あなたが何をしたいのかが、伝わらないからである。

伝達関数の求め方はいろいろあるんだよ。

376 名前:デフォルトの名無しさん [2008/01/22(火) 23:54:33 ]
何をしたいか:伝達関数を出したい
教えて欲しいこと:伝達関数の求め方

求め方として最小二乗かなと思って>>353と書き込んだんだがどこが伝わらなかったんでしょうか?

377 名前:デフォルトの名無しさん [2008/01/23(水) 09:50:12 ]
>>376
それで伝わっていると思うのなら、
あんたの理解が甘い。

先生に教えてもらえ。

378 名前:デフォルトの名無しさん [2008/01/23(水) 13:29:48 ]
linux(openSuSE 10.3)でmatlabを使おうとするとjavaのAssertionに引っかかって
死にます。java1.5だとそうなるらしいのですが、-nojvmというオプションを渡すと
GUIなしで起動するという話もみました。でも_JAVA_OPTIONという環境変数に-nojvmを
渡しても、Matlabが起動しません。(matlabのactivationはまだできてない)。どなたか同様の問題を乗り越えた方はいませんか?



379 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:24:49 ]
polarでMarkerSizeを変更する方法を教えてください

380 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:08:24 ]
ふつうのグラフで軸をスケーリングするには
AXIS([XMIN XMAX YMIN YMAX])
とすればできますが、
subplotを使ったグラフの軸をスケーリングするには
どうしたらいのでしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef