[表示 : 全て 最新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


244 名前:デフォルトの名無しさん [2007/11/05(月) 20:40:09 ]
>>243
SIM

245 名前:デフォルトの名無しさん [2007/11/07(水) 10:02:25 ]
例えば4x4のマトリックスを2x2にして、各要素は元々のヨウ素を加算してくれる関数はないですか?
ループとsum関数を使えばすぐに出来るんですがね


246 名前:デフォルトの名無しさん [2007/11/07(水) 10:05:37 ]
>>211
Image Processing Tool Boxだったかにあるよ。座標変換してからinterp2に流し込めばすぐにできるけどね。

247 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:42:27 ]
>>245
じゃぁ、ループとsum関数を使えば?

248 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 01:47:43 ]
>>247
matlab ではできるだけループを使わないのが重要
速度がダンチ

249 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 05:18:32 ]
書き方が曖昧でわからんがエスパーの俺ならこうかな。Aのサイズは偶数として。
B=A(1:2:end,1:2,end)+A(2:2:end,1:2:end)+A(1:2:end,2:2:end)+A(2:2:end,2:2:end);


250 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 05:19:06 ]
:と,一カ所ミスった。

251 名前:デフォルトの名無しさん [2007/11/09(金) 15:59:58 ]
??? エラー: ==> anfisedit
SCRIPT anfisを関数として実行してみてください.

これを解決するにはどうすればよい のでしょうか?
一週間前ぐらいにMATLAB始めた者です。

252 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 20:08:08 ]
>>251
SCRIPT anfisを関数として実行してみてください.



253 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:32:56 ]
MATLABで式をニュートンラプソン法でとくにはどうしたらいいでしょうか?
分からなさすぎてノイローゼになりそうです。

254 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:23:50 ]
まぁスレ違いだわな

255 名前:デフォルトの名無しさん [2007/11/12(月) 07:39:22 ]
GUI上でxの変域をかえたいんですけどどうすれば良いですか?

256 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 21:23:48 ]
GUI上で数値を入力させて、
set(h, 'xlim', [x1 x2]);
じゃダメなの?

257 名前:デフォルトの名無しさん [2007/11/16(金) 21:18:38 ]
FORTRANで書いたものを、
MATLABに変換したいのですが、手書き以外で
何かいい方法あったら教えてください。

258 名前:デフォルトの名無しさん [2007/11/16(金) 22:16:21 ]
fftでパルスの周波数帯域を表示させたいんですが、
周波数軸をどうやって設定すればよいかわからないのです。
パルスはガウシアンパルスでUWBなので5ギガ位まで表示させるつもり何ですが、うまくいかないのです。
どなたかお願いします。

259 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 02:50:17 ]
>>257
グーグルの使い方くらい知らないと
今後いろいろ苦労すると思うから覚えた方がいいよ。

260 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 18:16:24 ]
ファイルの読み込みで指定した列だけ読む方法ってありましたっけ。

A = load("hoge.txt");
B = A(:,4);
みたいに、全部読んで目的列以外は捨てればいいんですが、
ファイルのサイズが大きいと、
全部読むのに時間がかかるので、効率化したいのです。

261 名前:18 [2007/11/17(土) 23:13:55 ]
matlabでシミュレーションを5回もするとメモリが500Mから1Gくらいまで増えてしまうんですが、
これってなぜなんでしょうか?

262 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:14:17 ]
>>260
dlmreadのマニュアル読むと良いよ。



263 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 13:49:03 ]
対数データのフィッティングの方法を教えてください。
通常のデータであれば、最小二乗法ですが、対数データの場合はどのようにやればよいのでしょうか?

264 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:04:56 ]
対数の底で冪をとって最小二乗法

265 名前:beta-infinite [2007/11/20(火) 13:16:10 ]
「MATLABの極」というブログを書いています。良ければ、ご参考に
beta-infinite.blogspot.com/

266 名前:デフォルトの名無しさん [2007/11/25(日) 19:51:53 ]
著作権違反ですよw

267 名前:デフォルトの名無しさん [2007/11/26(月) 18:14:01 ]
MATLABを使ってBP法のニューラルネットワーク作らないといけないんですが
誰か請負いませんか?
価格は応相談、MATLAB使えてBP法分かる人ならそんなに難しい作業じゃないと思います
仕様とかその辺は請け負ってくれる人がいたらメールなりなんなりで連絡します

268 名前:デフォルトの名無しさん [2007/11/26(月) 18:32:59 ]
今、手一杯だからなー。
月80万だったら考えるけどね。
それかNNツールキット買えばいいんじゃないの?

269 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 18:46:20 ]
ていうか自分で作れって感じ
層やニューロン数を完全に一般化した物でなければ速攻で作れるでしょ
もちろんfor文抜きでな

270 名前:267 [2007/11/26(月) 19:12:50 ]
料金は
3時間未満:一律12000円
3時間以上:時給4000円
7時間以上:一律28000円
このあたりでよろ

おれ自身じゃ作れないので金で解決する

271 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 19:19:22 ]
安すぎ

272 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 19:29:20 ]
委託研究でMATLABでソフト作ったときは、30万もらったな



273 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 20:31:27 ]
作成物の複雑さとか教えてもらえずに
7時間以上28000円は安いな。

274 名前:267 [2007/11/27(火) 00:00:36 ]
ここでは話せないが詳しい仕様を聞いてくれるやつはレスくれ
秘密厳守の上その時点で断ってくれてもOKだから

275 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 00:06:40 ]
こんなところで依頼しようとしている時点でダーティなイメージがついてて嫌だ
全然予算がないようだし学生の卒論か?

276 名前:267 [2007/11/27(火) 01:14:15 ]
>>275
まさにそれ
誰か頼むよ〜

277 名前:デフォルトの名無しさん [2007/11/27(火) 01:19:35 ]
www.mes.p.dendai.ac.jp/index.php?plugin=attach&refer=%A5%B3%A5%F3%A5%D4%A5%E5%A1%BC%A5%BF%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%AD%B6&openfile=CP7.pdf
↑この最後のページにある問題を教えてください。
参考の為に問題文だけ書くと・・・

1)40名のクラスがあった時、すべての人の誕生日が異なる確立をモンテカルロ法で計算しなさい。
2)その結果を解析的に求めた結果と比較・考察しなさい。
よろしくお願いします。

モンテカルロ法が使えるプログラムはMATLABと書いてあったのでここに質問しました><
スレ違いでしたらすみません。。

278 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 06:40:06 ]
別に matlab じゃないとできないわけじゃない。プログラミング言語に依存してたまるか

279 名前:請負人 mailto:i100lao@yahoo.co.jp [2007/11/27(火) 11:53:45 ]
請負内容を見て判断したいです。詳細内容などをメールをください

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を使ったグラフの軸をスケーリングするには
どうしたらいのでしょうか?

381 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 21:17:09 ]
>>380
同じ

382 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 21:51:14 ]
>>381
同じでできるんですか?
AXIS([XMIN XMAX YMIN YMAX])としてもできなかったので
聞きにきたんですが。もう一度試してみます。

もしこれでできない場合、他に方法はないでしょうか?



383 名前:デフォルトの名無しさん [2008/01/23(水) 23:35:12 ]
>>382
subplot(211)
plot(x,y)
axis([xmin xmax ymin ymax])
%
subplor(212)
plot(x,y)
axis([xmin xmax ymin ymax])


384 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 09:38:12 ]
>>382
subplot(2,1,1);
plot(x, y);
set(gca, 'xlim', [xmin xmax]);
set(gca, 'ylim', [ymin ymax]);

でもいけるのでは?

385 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:55:38 ]
>>381>>383-384
できました。ありがとうございました!
自分が馬鹿でした。
axis設定してからplotしてました。
plotしてからaxisなんですね。

386 名前:デフォルトの名無しさん [2008/01/27(日) 13:14:09 ]
>>384
set(gca, 'xlim', [xmin xmax], 'ylim', [ymin ymax]);
で桶では?

387 名前:デフォルトの名無しさん [2008/01/27(日) 18:20:12 ]
逆ラドン変換iradon()を使うとデフォルトでRampフィルタがかかってしまうのですが
フィルタ無しの方法はありませんか?
海外のMATLABのヘルプでは値でNo filteringにできるそうなんですがバージョンが
古いのかバージョン7.2では出来ません。

388 名前:デフォルトの名無しさん [2008/01/27(日) 20:46:38 ]
逆投影なんかツールボックスを使わなくても数行でかけるのに(´・ω・`)

389 名前:387 [2008/01/28(月) 04:32:33 ]
なんとかヒントでもよければ教えてもらえないでしょうか?
専門外のことなのでどうにもこうにもツールに頼ってしまってorz

390 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 09:50:41 ]
edit その関数
で、中身見てフィルタ部分カットしたのを書くのはどうですか?

391 名前:デフォルトの名無しさん [2008/01/28(月) 12:49:16 ]
まあ、簡単に考えると配列の方をirotateで回転させ、そこに加算していけば2行で書けるんだけどね。
それで角度でループさせるの。

iradonの中を触るんだったら、Hというのがフィルター関数なので、この部分を取り去るか、1にしてしまうか。

勉強のために1から作りたいんだったら、C言語で出ている教科書を買って、ネチネチと移植してもいい。
おれは院の先輩の薦めで「SPECT画像再構成の基礎」(医療科学社)という本の中に出ているフーリエ変換法のプログラムを移植したよ。

392 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:08:17 ]
グラフの大きさを変えるにはどうすればいいのでしょうか?
いつもマウスでウィンドウのサイズを変えて
縦横比を見やすく調整しているんですか
コマンドでできないでしょうか?



393 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:07:23 ]
position

394 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:54:18 ]
set(2,'position',[30 246 1120 420]
って感じですね?
できました!
ありがとうございます

395 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 15:41:21 ]
figure(1);
print -deps 〜.eps

のようにグラフをepsファイルに出力してるんですが
その出力したepsファイルのサイズ(縦横比)を変えることはできないでしょうか?

set 'position'でできるかと思ったらできませんでした。

396 名前:デフォルトの名無しさん [2008/01/29(火) 16:20:06 ]
自由落下した物体が床で跳ね返る時、速度の符号が
変わりますよね。その時ゼロクロッシングとかいう
エラーでちゃいます。ゼロクロッシングの検知を
無効にするとうまくシミュレーションできません。
何でですか?

397 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 20:45:50 ]

483 名前:名無しさん@5周年[] 投稿日:2008/01/29(火) 16:04:56 ID:
自由落下した物体が床で跳ね返る時、速度の符号が
変わりますよね。その時ゼロクロッシングとかいう
エラーでちゃいます。ゼロクロッシングの検知を
無効にするとうまくシミュレーションできません。
何でですか?

398 名前:デフォルトの名無しさん [2008/01/30(水) 16:50:48 ]
set(gcf,'PaperPositionMode','auto')かな?

399 名前:395 mailto:sage [2008/01/30(水) 20:04:51 ]
>>398
printに-zbufferとか-openglオプションってのを
つけてみてもできなくて困っていたのですが
ずばりそれでできました!ありがとうございます

400 名前:デフォルトの名無しさん [2008/02/05(火) 13:58:03 ]
MEXをVisualC++2008ExpressEditionで
開発するときの設定の仕方ってどこか
にありませんでしょうか?m(_ _)m

401 名前:デフォルトの名無しさん [2008/02/05(火) 17:04:41 ]
x=[0:1000]に対応するf(x)が手元にあって
各xについてx-x/10<=x <= x+x/10の範囲でfの移動平均をとって平滑化をしたいんですが
ループを使わない方法はないでしょうか?

402 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:10:33 ]
100*100*100のxyz空間を用意して,各点に対して同じ100*100*100のAという行列の値を
カラーマップに対応する色で描画するにはどのようにすればいいのでしょうか?
X = 1:100; Y = 1:100; Z = 1:100;
[XX,YY,ZZ] = meshgrid(X,Y,Z);
によってxyz空間とそれぞれの点に値を持つ100*100*100のA行列は用意できている状態です。

例えばカラーマップの範囲が0(青)〜10(赤)でありA(50,50,50)=10の場合
出力されるfigureの(50,50,50)の部分を赤に色付けしたいです




403 名前:デフォルトの名無しさん [2008/02/08(金) 03:53:49 ]
Control System Toolboxを使われている方に質問です。

ゼロ次ホールドの連続時間伝達関数である、
H = (1-exp(-sT))/s ;  T:サンプリング周期[sec]
という表現をmatlab上で再現するにはどのようにしたらよいのでしょうか?
s = tf('s');
を使って直接表現しようと試みたのですが、上手くいきませんでした。

連続時間システムの制御器の設計及びコンピュータへの実装の際に
使用したいと考えています。
よろしくお願いします。

404 名前:デフォルトの名無しさん [2008/02/08(金) 12:02:16 ]
構造体にセットしたデータをfwriteとかでバイナリファイルに書き込むのはどうしたら良いのでしょうか?


405 名前:デフォルトの名無しさん [2008/02/12(火) 21:18:32 ]
素人質問ですが教えていただければ幸いです。

10個の自動計測されたデータが列方向に並んでいるcsvファイルを
csvreadで一気に読み込んだ後に(例えばAとする)、
10個の列要素に小分け(A1〜A10)しようと考えています。

各要素の1行目は説明なので2行目から最終行までを選択して取り込むには
どうすればよいのでしょうか?

思いつきでA1=A(:,2:inf)とかしようとしたらエラーがでてしまいました。

多分while文とかでNaNがでるまで読み込み続けるとかすると思ったのですが
力尽きてしまいました。

やさしい人。お願い。

406 名前:デフォルトの名無しさん [2008/02/12(火) 21:48:36 ]
infじゃなくってendじゃないの?

407 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:15:32 ]
>>405
よく読まずに書いてしまうが、infではなくendを使ってみたらどう

408 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:12:03 ]
>>2 請けた仕事について、2chで無料で意見伺う無神経さw
というか綱渡りで仕事してるからけつに火がついてしまうのに懲りてないな。
ベンチャー高専隊


409 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:47:16 ]
A(:,1)=[]
で1列消せるはず

410 名前:405 [2008/02/13(水) 00:47:05 ]
407さん、ありがとうございます!おっしゃる通りで解決しました。

さらに色々触ってみて疑問が沸いたので厚かましく質問させてください。
(長文ですみません、誰も呼んでくれないだろうなぁ・・・)

例えば、
-----------------
time data1 data2
1 10 100
2 11 99
3 10 102
4 9 98
| | |
-----------------

というデータをcsvファイルから読み込んで、
data1とdata2を1/1000倍してから
csvファイルとかExcelファイルに上と同じ書式でE書き込もうとして
下記のコードを書いてみました。

結果、xlswriteではうまく動くのですが、csvwriteではエラーが出ました。
セル配列を使えなかったようです。

私が自宅で使っているMATLABはバージョンが古く(ver.6.5)、xlswriteが使えません。
できれば古いバージョンでも動くファイル処理関数で対応できないものかと思っています。


411 名前:405 [2008/02/13(水) 00:48:21 ]
(続き)書いてみて失敗したコードです。ご指導お願いします!!
------------
clear all

Alldata = csvread('csvsample.csv', 1, 0);

Time = Alldata(2:end, 1);
Data1 = Alldata(2:end, 2);
Data2 = Alldata(2:end, 3);

Data1 = Data1/1000;
Data2 = Data2/1000;

Dataset = [Time Data1 Data2];
Dataset_cell = num2cell(Dataset)

Label = {'Time', 'Data1', 'Data2'};

Outdata = {Label ; Dataset_cell};

%xlswrite('newxls', Outdata)
csvwrite('newcsv.csv',Outdata)


412 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:28:43 ]
みなさんMATLABのfigureをWordとかPowerPointにはるのにどうしてますか?

今まではBMPで保存してXnViewの自動トリミングで余白を削ってはってました。
ただ、BMPだとWordでグラフを拡大縮小したりするとフォントがかすれたりして見た目がかなり汚くなります
ベクターフォーマットのemfファイルで保存するのが一番きれいなのですが、グラフの余白を簡単に削る方法が見つからないです
XnViewでもemfファイルを読み込めるんですが、XnViewで自動トリミングしてemfファイルに保存すると、
ファイルサイズが10倍以上になって、しかもビットマップデータみたいに拡大縮小すると汚くなります

グラフの余白を簡単に削れてきれいに貼り付けられるうまい方法とかないですか?



413 名前:405 [2008/02/13(水) 02:19:36 ]
自己解決しました。スレ汚しすみませんでした。
泥臭く下記のように書いてみました。
データ整理するのにxlsreadとかxlswriteって便利だなぁと思いました。
---------
clear all
Alldata = csvread('csvsample.csv', 1, 0);
Time = Alldata(2:end, 1);
Data1 = Alldata(2:end, 2);
Data2 = Alldata(2:end, 3);
Data1 = Data1/1000;
Data2 = Data2/1000;

Fid=fopen('newcsv3.csv', 'wt');
Label = {'Time', 'Data1', 'Data2'};
for i=1:length(Label)
fprintf(Fid, '%s,', Label{i});
end
fprintf(Fid,'\n');

Dataset = [Time, Data1, Data2];
[Rownum, Colnum] = size(Dataset);
for i=1:Rownum
for j=1:Colnum
fprintf(Fid, '%d,', Dataset(i,j));
end
fprintf(Fid, '\n');
end
fclose(Fid);


414 名前:デフォルトの名無しさん [2008/02/13(水) 07:14:12 ]
すいません、皆さんみたいにハッカーになるためにはどんなことが必要ですか?

415 名前:デフォルトの名無しさん [2008/02/15(金) 12:54:18 ]
>>412
グラフの大きさを指定して、拡大縮小せずに使えるようにする

416 名前:デフォルトの名無しさん [2008/02/15(金) 15:21:13 ]
MATLABでドロネー分割をつかって、3角形のパッチを利用した形状モデルを作っているのですが、パッチにテクスチャを貼り付けるにはどうすればいいでしょうか?


417 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:11:34 ]
3次元の立体形状から有限要素法用のメッシュを作り出す方法を教えてください

418 名前:デフォルトの名無しさん [2008/02/15(金) 17:19:00 ]
テクスチャマッピングの仕方を教えて欲しいです。
わかりやすいサイトとかがあればお願いします。
よろしくお願いします。

419 名前:デフォルトの名無しさん [2008/02/15(金) 18:09:31 ]
要求が高いなぁw

まず、www.google.co.jp。日本語以外のサイトも調べよう。

420 名前:デフォルトの名無しさん [2008/02/18(月) 22:58:56 ]
2次元のグレースケールの画像を、Z軸がピクセル値で3次元表示させたいんですけど、どうすればよろしいですかね?

421 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 04:52:22 ]
>>420
surf

422 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:17:32 ]
すいません,
a = 'Hello World'

b[1] = 'Hello'
b[2] = 'World'
に分割するコマンドはありませんでしょうか.



423 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:40:36 ]
doc regexp

424 名前:デフォルトの名無しさん [2008/02/20(水) 16:55:39 ]
>>422
[ str,rem ] = strtok( a,' ' );

これで、最初のスペースまでの単語がstrに入り、残りがremに入る。
remの中をさらに切り分けたければこれを繰り返す。
str系の関数はC言語とほぼ同じだな。

425 名前:デフォルトの名無しさん [2008/02/21(木) 23:23:05 ]
WAVファイルをパワースペクトル表示する方法を教えてください
お願いします

426 名前:デフォルトの名無しさん [2008/02/22(金) 01:14:46 ]
ぐぐれ

427 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:13:43 ]
ググっても見つからなかったんで質問させてください。

h1 = plot(x1)
hold on
h2 = plot(x2)
h3 = plot(x3) ...

といくつかのプロットを重ねた後、一つだけ(例えばx2のプロット)だけ消したい、または変更したいという場合、どうしたらいいですか?
全部プロットしなおせばいいんですが、ちょっと重い上に何度もやるプロットなんで、全部やり直すというのは避けたいんです。

428 名前:427 mailto:sage [2008/02/23(土) 23:15:57 ]
書き忘れてました。プロットツールは使わず、関数で出来る方法で探しています。

429 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:19:58 ]
www.google.co.jp/search?hl=ja&rls=GGGL%2CGGGL%3A2006-17%2CGGGL%3Aja&q=matlab+line&btnG=%E6%A4%9C%E7%B4%A2&lr=

430 名前:427 mailto:sage [2008/02/24(日) 22:00:13 ]
>>429
ありがとうございます!

431 名前:デフォルトの名無しさん [2008/02/25(月) 11:05:16 ]
グラフの凡例中で改行するにはどうすればよいでしょうか?

plot(X1)
hold on
plot(X2)
plot(X3)
legend({'X1';'test'},'X2','X3')

とタイトルや座標軸中の改行と同じように入力しても無理でした。

432 名前:デフォルトの名無しさん [2008/02/25(月) 13:33:55 ]
100枚の画像あってサイズが縦240横352なんですが
横の左50画素、右46画素をカットして横幅を256画素に、
30×30の位置の色と同じものを上に縦16×横240くっつけて
256×256の画像にしたいのですが、どうすればいいでしょうか?



433 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 13:40:08 ]
つ[ImageMagick]
なんでもかんでもMATLABでやりたいならしらね。
つーか、MATLABエキスパートに任せた。

434 名前:422 mailto:sage [2008/02/25(月) 19:24:02 ]
>>423
>>424
ありがとうございました!
6.5なので423での'split'は無理みたいでした.

435 名前:デフォルトの名無しさん [2008/02/25(月) 20:47:37 ]
質問です!
ある画像の一部分(オブジェクト)の画素値の平均をとりたいのですが、
ラベル付けして、オブジェクトの全ピクセルの座標は取ったのですが、
for i=r(min):r(max)
for j=c(min):c(max)
heikin=mean2(Img(i,j,:));
だと、オブジェクトの形が四角ではないのでオブジェクトの外側の画素値まで
計算してしまいます。

何かいい方法がありましたら教えてください。

436 名前:デフォルトの名無しさん [2008/02/25(月) 21:04:19 ]
>>435
オブジェクトがなんなのかわかりませんが、その内側と外側で違う特徴的なものをfindで引っかけてやればいいのでは?
たとえばオブジェクトの外側が-100より必ず小さいのであれば

m = find( Img( : ) < -100 );
heikin = mean( Img( m ));

の2行でできるはず。
Imgの範囲を絞りたいのだったら、

i = r(min):r(max);
j = c(min):c(max);
m = find( Img( i : j ) < -100 );
heikin = mean( Img( m ));

forループは極力使うのは止めましょう。

437 名前:435 [2008/02/25(月) 22:08:15 ]
ご回答ありがとうございます。
バッチリ上手く行きました。

差しでがましいですが
もう一つ質問が…

二値化の画像にラベル付けをしてあるのですが、
ある座標を与えて、その座標を含むオブジェクトのラベル番号、
もしくはそのオブジェクトを構成している全座標を入手したいです。
[r,c] = find(bwselect(Img2,i,j));
これが僕の絞り出した答えでしたが無理でした。。

いいアイディアがありましたら教えてください。


438 名前:435 [2008/02/25(月) 22:08:54 ]
ご回答ありがとうございます。
バッチリ上手く行きました。

差しでがましいですが
もう一つ質問が…

二値化の画像にラベル付けをしてあるのですが、
ある座標を与えて、その座標を含むオブジェクトのラベル番号、
もしくはそのオブジェクトを構成している全座標を入手したいです。
[r,c] = find(bwselect(Img2,i,j));
これが僕の絞り出した答えでしたが無理でした。。

いいアイディアがありましたら教えてください。


439 名前:デフォルトの名無しさん [2008/02/26(火) 21:13:42 ]
>>432
画像の読み込みをまずやってみよう


440 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:35:03 ]
フルカラーを使ってのムービーを作成する際のコーデックは何がおすすめですか?


441 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 13:22:39 ]
無圧縮AVI
後で別のソフトで変換

442 名前:デフォルトの名無しさん [2008/02/28(木) 22:32:06 ]
質問させてください!
統計的に(最小2乗法などを用いて)2次近似モデルを式として作成する関数を探しています。

例えば実験にて2つの入力を調整し、1つの出力が得られるものがあるとします。
そのときの計測条件を[x,y](2入力、ともにベクトル)、計測値を[z](1出力、ベクトル)としたときの
計測値Zに対するX,Yの2次近似モデルを作成したいのです。
アウトプットイメージとしては
Z=係数*X^2+係数*Y^2+係数*X*Y+係数*X+係数*Y+係数
のような感じです。

プロの皆さん、どうか教えてください〜



443 名前:デフォルトの名無しさん [2008/02/29(金) 03:55:17 ]
>>442

z=[ z1,z2,......,zn ] '、x=[ x1,x2,......,xn ] ' , y = [ y1,y2,......,yn ] ' とし

z = A*x^2 + B*y^2 + C*x*y + D * x + E*y + F

とすれば

a = [ x.^2 y.^2 x.*y x y ones( length( x ),1) ];
x = [ A B C D E F] ' ;

とおいて

x = a\z;

で解けるはず。未知数が6つなので、データ数が少なくとも6つ以上ないと無理だけどね。
重み係数を使う必要がある場合は、ノルムを最小にするようにしないといけないけどね。

444 名前:デフォルトの名無しさん [2008/02/29(金) 03:56:57 ]
>>437
find関数の中は条件文じゃないと機能しないのでは?


445 名前:デフォルトの名無しさん [2008/02/29(金) 21:13:31 ]
>>443
ありがとうございますー、やってみます!

446 名前:デフォルトの名無しさん [2008/03/02(日) 12:22:49 ]

>重み係数を使う必要がある場合は、ノルムを最小にするようにしないといけないけどね。

この意味が理解できないw

447 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 17:50:26 ]
>>446
ノルムというのは距離のこと


448 名前:デフォルトの名無しさん [2008/03/03(月) 18:43:02 ]
重み付き最初二乗法はどうやって記述できるの?

449 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 21:14:23 ]
なぜmatlabスレで数式をきくんだ?
matlab への翻訳がわからないのなら数式は記述しておくとか、
数式が記述してあるページとかを示しておくべきなんじゃないのか?
数式がわからないというのはスレ違いだろ?

450 名前:デフォルトの名無しさん [2008/03/03(月) 21:32:41 ]
>>449
ウルサイ!

451 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:27:27 ]
シミュ板の scilab のスレッドが過疎で
レスがいただけないようなので、こちらで質問させてください。

MATLAB で

( x^2 ) + ( x * y ) + ( y^2 ) = 1;

主軸が斜めになっている楕円は
どのように plot2d すればいいのでしょうか?


452 名前:デフォルトの名無しさん [2008/03/03(月) 23:41:30 ]
>>447
いや、そもそも変なこと書いてるのではないか?



453 名前:デフォルトの名無しさん [2008/03/04(火) 00:26:46 ]
あるwaveファイルにQ値、ゲインをある特定の周波数に持たせたい
(EQをかけたい)のですが、どうすればよいのでしょうか?
フィルタを使う(fdatool)ではダメですよね?
宜しくお願いします


454 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 23:19:31 ]
>>453
ここを参考にすべし
www.musicdsp.org/files/Audio-EQ-Cookbook.txt

455 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 19:29:46 ]
dl.cybernet.co.jp/matlab/support/manual/r2006/toolbox/matlab/visualize/?/matlab/support/manual/r2006/toolbox/matlab/visualize/chvolv19.shtml
このような3次元の物体の可視化を行っているのですが、物体の表面で金属のような質感を出すにはどのように
設定したらよいのでしょうか?

456 名前:デフォルトの名無しさん [2008/03/12(水) 16:33:14 ]
質問させていただきます。
「MATLABによる制御系設計」という本で勉強しているんですが、
MATLABの制御系コマンドを使えるフリーソフトを探しています。

検索すると無料でScilab,Octave,Freemat,有料でMATXというのがあるようですが、
制御系コマンドを使う時、互換性が最も高いなどお勧めの
ものがあれば教えてください。

457 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:42:00 ]
有料だけどMATLABっていうのがあるらしいよ

458 名前:デフォルトの名無しさん [2008/03/14(金) 11:53:20 ]
>>457
456
もちろんMATLABは知ってますが・・・・
研究でMATLABは使ってきたのですが、これからは
家でも勉強したいのであのような質問をしたのですが。
拙い質問と感じられたのでしたら申し訳。


459 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:07:50 ]
Scilabでいいんじゃね

460 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:25:43 ]
Octaveでいいんじゃね

461 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:54:57 ]
Freematでいいんじゃね

462 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:24:08 ]
とりあえず見つけたやつ全部自分で試して見ればいいんじゃね



463 名前:デフォルトの名無しさん [2008/03/15(土) 00:59:47 ]
学生ならMATLAB買え

464 名前:デフォルトの名無しさん [2008/03/15(土) 20:20:24 ]
>462
ごもっともだと思います。
知り合いにもそういう意見をもらったんで、
そうしてみます。とりあえず、Scilabインストールしてみました。
金銭的に厳しいのでフリーのソフトから自分なりに試して
みようと思います。

>463
それもそうですね。
MATLABをインストールできるだけお金が貯まったそうしようと思います。
4月から社会人なので。

意見ありがとうございます。

465 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 11:58:18 ]
前の職場でmatlab使ってたけど今のところでmatlab買えない
pyrhon.numpy

maxima
どっちがお勧め?

466 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:34:39 ]
俺的には;
python + scipy + matplotlib

467 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 04:30:27 ]
グリッドの幅を変更したいのですがどうやって指定すればいいのでしょう?
grid minor より細かくしたいでっす。

468 名前:デフォルトの名無しさん [2008/04/08(火) 06:19:29 ]
Unix用Matlabで圧縮ムービーを作る方法はありませんか?
movie2aviだと非圧縮しかサポートしていないようなのですが。

469 名前:デフォルトの名無しさん [2008/04/09(水) 21:59:10 ]
行列の平方根を求める方法を探したら、関数「sqrtm」が使えることが分かった。
例えば、
Y = X * X;
でYが与えられたとき、解Xを求めるには、
X = sqrtm(Y);
とすればいい。


ところで、次の場合、解Xを求めるにはどうすればいいんだろう?
分かる人いる?

Y = X * X'
※ 行列はすべて複素行列で、「'」は複素共役転置を表す


470 名前:デフォルトの名無しさん [2008/04/11(金) 16:07:05 ]
教授から言われて、MATLABで作ったプログラムをコンパイルしています。
コンパイルは普通に通るのですが、エラーが発生する箇所が時々出ます。
エラーが出た箇所や解決法をリスト化して書いてあるサイトなどは無いのでしょうか?
今回は解決したのですが、毎度これを解決するのは難儀なので。

今回はsystem関数で
-----------------------------------------
"プログラムのフルパス" -コマンドラインオプション
-----------------------------------------
としてあったのを
-----------------------------------------
cd "プログラムのあるフォルダ"
プログラム名 -コマンドラインオプション
-----------------------------------------
としたら動きました。

471 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:27:55 ]
>>470
どうでもいいが、ディレクトリをほいほい移動しちまっていいのか?
その後ファイルアクセスしてたら厄介だぞ。

472 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:04:33 ]
UNIXのoctaveスレの人たちをここに誘導した方がいいのだろうか



473 名前:デフォルトの名無しさん [2008/04/12(土) 21:48:45 ]
お互いに行き来すればいいんじゃない?
全員誘導に従うとは思えないけど


474 名前:470 [2008/04/14(月) 12:09:08 ]
>>471
ご指摘どうもです。
今回の場合は、外部のプログラムを1回呼び出すだけだったので問題はなかったです。

コンパイル時に動かないのは、プログラムのパスをダブルクォテーション(")で囲っているのにその後にコマンドライン引数あげている事なので…

あと、どうも他にMATLAB関連スレが見当たらないので一人事を書いておきます

・eval関数を使うとコンパイル後実行時にエラーが出る
mファイルをコンパイル時に外部mファイルが必要と判断された場合は、必要な外部mファイルは暗号化されてctfファイルにまとめられるが
eval文中で外部mファイルを
eval('foo(1);');
と呼び出すとコンパイル時に解析されないのでctfファイルに同梱されない
おそらくfevalやinline等の関数も同じ症状が出る

邪魔だったら文句言って下さい…

475 名前:470 [2008/04/15(火) 16:02:17 ]
独り言その2
evalやfeval、inline等の関数を使うと、コンパイル後、プログラムをを実行中にエラーが出ることがある
これはMATLABに同梱されている関数でもその対象となるものがある。
その関数の中でfevalなどが使われていると、やはり同梱されない関数が出てくるため実行エラーがある
Signal Processing Toolboxのaryule 関数でそういう症状があった。

476 名前:470 [2008/04/15(火) 17:18:30 ]
間違いがありました
aryule関数ではなく、pyulear 関数でした。
独り言その3
このようにeval関数関係でエラーが起こる場合、一番有効な方法は
ctfファイルに必要な関数を同梱させるために一度も使わない関数を書いて
function foo()
関数1();
関数2();
関数3();

とコンパイルするmファイルに追記しておくと良いと思います。


477 名前:デフォルトの名無しさん [2008/04/16(水) 19:47:18 ]
ムービーをQuickTime形式で保存する方法を教えてください

478 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 01:55:22 ]
>>477
>>441

479 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 16:35:52 ]
質問です

MATLABにおいてベクトルの要素が複素数の場合に最大値を求めると、
最大値はなぜそれが最大値だとみなされるのでしょうか?

480 名前:デフォルトの名無しさん [2008/04/18(金) 17:45:16 ]
長さじゃないの?

481 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 18:58:37 ]
もうちょっと詳しくお願いできませんか?
3+iと4-3iの場合、どのように大小を決めるかということです

482 名前:デフォルトの名無しさん [2008/04/18(金) 19:19:09 ]
ベクトルの長さだから、sqrt( 3^2 + 1^2 ) と srqt( 4^2 + (-3)^2 )じゃないの?



483 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:21:55 ]
ああなるほど、そういうことですか
親切にありがとうございました

484 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:43:25 ]
matlabを使う前に中学数学を勉強しよう

485 名前:デフォルトの名無しさん [2008/04/18(金) 22:43:32 ]
MATLABはコンパイラがあって、それを使うとC/C++で組んだコードと同じくらいの
速さになる、と聞いたのですが本当ですか?


486 名前:デフォルトの名無しさん [2008/04/18(金) 22:58:21 ]
本当だよ。100万近くするけどね。研究室のを使っている。

487 名前:デフォルトの名無しさん [2008/04/18(金) 23:06:07 ]
>>486
ありがとうございます。友人からそのことを聞いて、いまC++を勉強してるのが無駄な感じがしてきてたのですが、
やっぱり、MATLABがそれなりにできてコンパイラもある状態なら、あたらしくC++を勉強する必要はない、という
くらいですか?実行速度で、C++で作ったコードには勝てますか?
C++で行列使うのいやなんですよね。。。それでも速度でC++の方が速いなら、やる価値はあるのかと思ってたけど、
そうじゃないならC++とはバイバイしたいス。


488 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 10:39:12 ]
C/C++からmatlabを使って高速に動かす、という手もある。
こちらは100円も掛からない。

489 名前:デフォルトの名無しさん [2008/04/20(日) 11:28:41 ]
>>488
MATLABの関数を外部ライブラリみたいにつかうということですか?


490 名前:デフォルトの名無しさん [2008/04/20(日) 21:43:48 ]
uicontrol('style','text','string','TEST')

など、GUIで文字を入力した図をeps形式で保存しました。
これをillustratorで開くと、入力した文字が図形オブジェクトとして認識されてしまいます。
illustrator内で、文字オブジェクトとして認識させる方法はないのでしょうか?

491 名前:デフォルトの名無しさん [2008/04/21(月) 19:15:01 ]
movie2aviを実行すると

エラー: ==> avifile.addframe>ValidateFrame
Frame must be 440 by 439.

というエラーが出ます。ウインドウのサイズが問題なのだと思うのですが、
movie2aviコマンドに適切なウインドウサイズをプログラムで指定できませんか?

492 名前:デフォルトの名無しさん [2008/04/22(火) 18:29:05 ]
2つの変数を数十万通り、方程式に代入して解を求めたいのですが、Matlabのプログラムで可能でしょうか?
可能でしたら、具体的にどのようにすれば求めればいいでしょうか?
(Mathematica、Maple、C言語など、他のソフトも使える環境にあります。Matlabより向いているソフトがあれば教えてください。
ちなみにソフトは苦手で、どれもにわかです。)



493 名前:デフォルトの名無しさん [2008/04/22(火) 18:38:15 ]
数十万だろうが一つだろうが本質的にはかわらんよ。方程式は非線形なの線形なの?

494 名前:デフォルトの名無しさん [2008/04/22(火) 19:00:07 ]
非線形です。
方程式は、今ある状態ではニュートン・ラプソン法等で近似を行う必要があり、計算が膨大になりそうなので
ある程度n、簡略化を行おうと努力してるところです。
一応、線形にできる可能性もないこともないと思います。

知りたいのは、何十万通りの2つの変数を外部データから読み込んで計算するのにMatlabは適しているのか、ということです。

495 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:27:30 ]
質問です
rootsを使って多項式の解を求めるとき、
f(z) = z^-2 +9 のように逆数になってる場合どうすればいいのでしょうか?
また複素数面上に極座標表示するにはどれを使えばいいでしょうか?

496 名前:デフォルトの名無しさん [2008/04/23(水) 15:09:13 ]
>>494
本当に何十万通りやらなければいけないのか、考えてみることが必要かと。
プログラム自体は何パターンでも計算可能

497 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:11:36 ]
二つの変数を取る、その問題に最適化されたプログラムを自分の手で書いたほうがいいと思うんだが

498 名前:デフォルトの名無しさん [2008/04/23(水) 22:31:07 ]
画像処理のテンプレートマッチングで、xcorrを利用している人いますか?
xcorrは、相互相関係数を計算する関数だそうですが、
dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/signal/?/matlab/support/manual/r14/toolbox/signal/xcorr.shtml
を読んでもよくわからないです。
マッチングする領域の画素データをx、yとすると、xcorr(x,y)はひとつの値になると
思うんですが、行列で出てくるみたいです。
xcorrをどうやって使うか、教えてください。

499 名前:デフォルトの名無しさん [2008/04/23(水) 23:15:42 ]
xcorrに限らず、配列がマトリックスの場合、それぞれの縦ベクトルで別々に計算するというルールがあるの。sumとかmeanとか。
だから、これを一本の縦ベクトルにしてからぶち込んだらいい。
あとは自分で調べてね。
ここ基本だからね。

500 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:49:17 ]
>>498
ん?なんで cross correlation がひとつの値になるんだ?
語弊を恐れず書くと cross correlation は convolution みたいなもんなんだから、|N1| + |N2| -1 の長さになるだろう?
あと、2次元データなら2次元拡張 xcorr2 がある。

501 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 05:27:21 ]
matlab買えないのでRにした
octaveっていま一つ


502 名前:デフォルトの名無しさん [2008/04/25(金) 07:11:58 ]
>>498
相互相関から勉強しよう



503 名前:デフォルトの名無しさん [2008/04/25(金) 08:58:45 ]
とういうか単に相関corrを使いたいだけなんじゃないの?

504 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:04:45 ]
PC変更したらアクチベーションは2台までらしく
アクチベーションできなくなって
PC移行時は問い合わせろと書いてあったので
米・日両方問い合わせるも反応ナッシングな俺はどうしたらいいですか。
Studentの2007年版デス。

505 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:50:13 ]
積分が行われる様子を可視化することは可能でしょうか?
球の表面積を面積要素で表したいのですが。

506 名前:デフォルトの名無しさん [2008/04/28(月) 20:05:28 ]
>>504
土日だからじゃないの?
もう返事きたでしょ?


507 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:20:57 ]
>>506
来ました
Machine IDの変更申請をしろとな

508 名前:デフォルトの名無しさん [2008/04/29(火) 19:03:34 ]
ウインドウを表示せずにアニメーションを作成する方法を教えてください。

509 名前:デフォルトの名無しさん [2008/05/01(木) 07:23:38 ]
MATLABで
A=atan(imag(B)./(real(B));
と位相応答を求めた後、群遅延を求めるにはどうしたらよいでしょうか?
上式を周波数で微分したらよいと思うのですが・・・
やり方がわかりません・・・

510 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:35:44 ]
すみません。スレ違いだったらスマソ

友達がPCに詳しい自分にmatlabを使えるPCはどれがいいかと聞いてきたんですが、自分はこのソフトについて一切知らないのが現状です。
みなさんがmatlabを快適に使う環境とはどのようなものなのでしょうか?


よろしくお願いします

511 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:54:45 ]
>>510
matlabを快適に使うとなればメモリは8GBくらい欲しいし、となれば64bitLinuxをWoodcrestXeonで動かせばいいかな。
matlabだけならCPUはDualCore一個でいいんじゃない? ディスクはできればRAIDを組むとして、HPのProliant辺りでどうでしょ。

512 名前:510 mailto:sage [2008/05/01(木) 18:20:43 ]
>>511さん
メモリ4GBに64bitは自分のメインマシンですがそれでも足りないんですねw

すみません。言い方を間違えたようです。
とりあえずコスト10万ぐらいのレベルで考えたときどのような構成にすればよいでしょうか?

>>511さんのレスからするとメモリは多めでCPUはdual coreぐらいでも問題ないと。
ぜんぜん理解していなくて申し訳ないのですがmatlabは大容量のデータをいじることにポイントを絞り、それに伴うCPUがあればいい感じですか?


どうぞよろしくお願いします



513 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:49:18 ]
そりゃあんた、>510の友達がmatlabをどう使うのか判らんから判らんがな。

514 名前:デフォルトの名無しさん [2008/05/02(金) 11:03:03 ]
>> 486
MATLABにコンパイラがあるのは本当。C++のコードに一度変換してコンパイルしている。
で、間違いのほうなんだけどある程度高速にはなるけどPureなC++でマシなコードを書いたほうが断然早い。
私の場合画像処理ライブラリ関係でお世話になったけど3割程度しか高速化しなかった。
ちなみにMATLAB7.1環境。


515 名前:470 [2008/05/02(金) 11:09:36 ]
>>510
私は研究室のノートPCに入れて使っているけどストレスを感じませんよ。
余程に型落ちなPC(1G以下のCPU)でもない限りOSの推奨スペック程度あれば基本的には大丈夫かと。

スペックはあるに越したことはないけど、必要かどうかは、何の研究をやるかによる
計算量が爆発するようなアルゴリズムが必要な分野でないなら気にしなくて良い。

516 名前:matlab初心者 [2008/05/02(金) 11:24:59 ]
matlabの超初心者です。
既にあるプログラムを手探り状態で書き換えているのですが、
行き詰ってしまったので教えて下さい。

ボタンが2個とスライダーが1個あるフォーム(diologueform)を作りました。
そのフォームのmファイルは以下のとおりです。

function varargout = dialogueform(varargin)
・・・
省略
・・・
% Get default command line output from handles structure
varargout{1} = handles.output;

% The figure can be deleted now
delete(handles.figure1);

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
handles.output = get(hObject,'String'); %  ← この行は自分で追加
guidata(hObject, handles);
uiresume(handles.figure1);

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
handles.output = get(hObject,'String'); %  ← この行は自分で追加
guidata(hObject, handles);
uiresume(handles.figure1);


517 名前:matlab初心者 [2008/05/02(金) 11:25:26 ]
(続き)
% --- 以下はスライダーについての処理
function slider1_CreateFcn(hObject, eventdata, handles)
usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
slider1 = get(hObject,'Value'); %  ← この行は自分で追加

・・・
省略
・・・


そして、他の関数のmファイルで、

result = dialogueform;

とすれば、
resultに押したボタンの名前が保存されます。
しかし、どうすればslider1の値(スライダーの値)を
他の関数のmファイルで参照できるのかが、
わかりません。

わかりづらい、文章で申し訳ございませんが、
とても困っているので教えてください。

518 名前:511 mailto:sage [2008/05/02(金) 11:26:34 ]
まぁ>511は極端な例だけど、matlabで「待つ」ような処理をさせるのであれば2coreは欲しいね。
メモリはあるに越したことはないけど何の計算をするか次第かな。
ってことで、普通にCore2duoのPCを(メモリとディスクをけちらずに)組めばいいんじゃね?
GPUをNVIDIAの8800GT辺りにしておいて、CUDAを使ったライブラリを使える可能性を視野に入れてもいいし。

519 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:47:46 ]
>>518
MATLABって、まだマルチCPUに完全に対応していなかったような気がするのだが、
どのバージョンから対応したのか教えてくれないか?

520 名前:511 mailto:sage [2008/05/02(金) 11:56:31 ]
いや、matlabの結果を待っている間、他の作業もできるようにってこと。
matlab自身が対応しているかどうかが理由じゃないよ。
まぁ、Pen4でmatlab動かしてる間にデータの整理しようと思ったら結構かったるかったんでね。

521 名前:デフォルトの名無しさん [2008/05/02(金) 12:05:29 ]
>>517
1)slider1 をグローバル変数にするのが一番早いような木がする。
2)荒技だけど、handlesの構造体に変数を勝手に付け加えてそこに書き込むと言う手もある。
handles.slider1 = xxxx;

522 名前:matlab初心者 [2008/05/02(金) 12:28:59 ]
>>521
早速のご返答ありがとうございます!
複雑さを避けるために2)を試してみます。



523 名前:517 [2008/05/02(金) 12:54:41 ]
>>521
handles.slider1 = get(hObject,'Value');
としたのですが、他の関数のmファイルで、
handlesを参照する方法がわかりません。。。
たびたびすみませんが、ご教授下さい。

524 名前:517 [2008/05/02(金) 21:20:46 ]
自力で解決しました。ありがとうございました。

525 名前:509 [2008/05/07(水) 18:52:59 ]
もう一度書きこみさせてください

位相特性を周波数で微分して、群遅延を求めたいのですが
「周波数で微分する」の部分をどう書けばいいのかわかりません

位相特性は求めることができているのですが・・・
どなたか助けてください
お願いします

526 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:51:36 ]
位相特性が周波数なのでそれを微分する

527 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:24:39 ]
この春から、学生はMATLABが18900円で買える件。
アップデートは無しだが、そこそこToolboxも付いてるし使えそうよ。

528 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 09:59:58 ]
開いてみるまでPICのスレだと思ってた事はヒミツです

529 名前:18 [2008/05/10(土) 14:39:49 ]
>>527
まだ届いてないけど注文しますた。
社会人になってからも株のシミュレーションで使えるし迷わず購入

530 名前:デフォルトの名無しさん [2008/05/10(土) 17:41:36 ]
以前に購入したMATLAB 2006b 学生版を新しく買う予定のPCに入れようと思っています。
OSがビスタなのですが、インストールできますでしょうか。
サイバネットのホームページを見ても分かりませんでした(探し方が甘いかもしれませんが)。
親切な方、教えてください。



531 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 18:25:33 ]
InternetArchiveから2006年のFAQを一通り見てみたけど、vistaに関する記述はないな。

532 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:45:16 ]
>>530
以下、僕の経験則だけど。
6.x はライセンスマネージャが Vista に対応していないのでインストールできない。
メインバージョンが 7 になって以降は問題なくインストールできてる。
従って、学生版でも R2006b なら問題なくインストールできると思われ。

余談だけど Vista で 6.x を動作させたい場合は
VMware や Virtual PC を wrapper にしてる。



533 名前:デフォルトの名無しさん [2008/05/11(日) 14:49:17 ]
>>531,532さん
ご回答ありがとうございます。
すごく助かりました。
おかげさまで安心してPC購入できます。

ところで、別の研究室でVistaにver.6.5(R13)をインストールしようとしててできない奴がいます。
532さんが書かれた要因だったようですね。

その場合、532さんが書かれている方法をとるか、XP以前のOSが入っているPCにインストールすることになるかと思います。

そこでもう一度質問させていただきたいと思います。
恥ずかしながら、「VMware」や「Virtual PCをwrapper」の内容が分かりません。

その設定を使うことでVISTAでもver6.xを使うことは可能なのでしょうか。
その設定は素人が手を出さないほうが良い内容でしょうか。
もし手を出してよさそうなのであれば、どのあたりを調べれば使い方が習得できますでしょうか。

聞いてばかりですみませんがよろしくお願いします。

534 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 15:22:38 ]
>>532
>VMware や Virtual PC を wrapper にしてる。
速度はあんまり落ちないってこと?

535 名前:532 mailto:sage [2008/05/11(日) 15:39:42 ]
>>533

お役に立てて何より。

簡単に説明します。
VMware や Virtual PC は、Vista 上で別の OS を走らせるソフト、と考えて下さい。
以下、僕の踏んだ手順です。
1. Vista に Virtual PC をインストールする
2. その Virtual PC に Windows98 を導入する
3. その Windows98 に Matlab 6.x をインストール
4. めでたしめでたし。

Virtual PC は MS 謹製でフリー、動作はしっかりしてるけど速度は気持ち遅め。
VMware はこの手のソフトの始祖で歴史があり、様々な OS に対応してます。
各々使い方を知ってて損のないソフトなので、とりあえず触ってみるのがよいかも。
使用法に関して細かく説明しているサイトは山ほどあるので、ググってみて下さい。
ちなみに wrapper というのは、「ラップするもの」の意です。
Vista を 98 の皮でラップして、その環境下で 6.x を動作させるという文脈で
使ってます。good luck!


>>534

おそらく予想どおりの回答で申し訳ないけど、スペック次第。
上述のとおり VMware の方が速度的には勝っている模様だけど、
個人的には Virtual PC でもストレスなく使えてる。
まぁ試してみるのがよいよね。

536 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 01:11:17 ]
MATLABとIDLってどっちが実行速度速いですか?

537 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:57:57 ]
MATLAB学生版、科研費(学振)で買えるそうですよ。
と報告。

538 名前:デフォルトの名無しさん [2008/05/13(火) 04:39:49 ]
>>537
どうやって?
HP見ても学生個人が買わないといけないって書いてあるけど。

539 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 09:04:40 ]
学振だったらいいんじゃないのかな?

540 名前:デフォルトの名無しさん [2008/05/13(火) 23:59:45 ]
ぐぐっても探せなかったので質問させてください。
OSのコマンドプロンプトから直接Matlabスクリプトは叩けないのでしょうか?
自分の調べた限りでは、みんなMatlabを立ち上げて、Matlabコマンドプロンプトからの
実行ですた。
CGIとかでWebからMatlabを動かせたらステキだと思ったので。
やっぱりMatlabを立ち上げないとムリなのでしょうか。

541 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 02:39:55 ]
>>540
matlab -r foo.m

542 名前:デフォルトの名無しさん [2008/05/14(水) 16:56:38 ]
大学の講義でMATLABを使って、非線形方程式を自分で考えて解けという講義内容だったのですが、MATLABの使い方が全くわからないので誰か助けてください。



543 名前:デフォルトの名無しさん [2008/05/14(水) 18:18:09 ]
いいよ

544 名前:デフォルトの名無しさん [2008/05/14(水) 20:19:57 ]
>> 541
ありがとうございました!!
教えてもらったものを元に、いろいろやってみたら、できました!

545 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 21:14:21 ]
>>537
それは問題になると思うよ。


546 名前:デフォルトの名無しさん [2008/05/17(土) 17:29:31 ]
MATLABで作った図をイラレで使いたいのですが
どうすればいいのでしょうか?

547 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:12:44 ]
>>546
ファイル→エクスポート→ベクタを保持できるファイル形式(epsやemf)で保存
→おもむろにillustratorで開く
コマンドラインから画像を保存する場合はprint命令を使う

これでいいかい

548 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 10:49:36 ]
>>547
フォントとか座標軸とか、勝手に書き換えられるのではないか?

549 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 23:22:09 ]
matlabでオブジェクト指向プログラミングをしたいのですが,
どなたか勉強に良いサイトを教えていただけませんか?

550 名前:549 mailto:sage [2008/05/19(月) 23:26:55 ]
www.mathworks.com/access/helpdesk_r13/help/techdoc/matlab_prog/ch14_o10.html

本家のサイトが意外によかったようです.
自己解決しました.

551 名前:デフォルトの名無しさん [2008/05/20(火) 12:15:27 ]
フーリエ変換のグラフで横軸がタイムフレーム、縦軸が周波数binで値が大きいほど濃いグラフ書きたいんですがどんな関数使えばいいでしょうか?

552 名前:124 [2008/05/21(水) 11:36:23 ]
初歩的な質問で申し訳ないんですが、
matlabを開いた時に開かれるcurrent directoryの
初期フォルダを変更することって可能でしょうか?
わかる方いましたらよろしくお願いします。



553 名前:デフォルトの名無しさん [2008/05/21(水) 13:01:07 ]
matlab のショートカットアイコンを作っといて
そのプロパティの作業フォルダを変えるとか。
もしくは startup.m を作って cd(foo); とか。

554 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:18:05 ]
ショートカットアイコンってなんですか?

555 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 01:41:05 ]
その質問は、もう質問の体をした荒らしみたいなもの。
google もまともに使えんのに matlab で何をするつもりなのか、答え給え。

ぼくぁいつもマジレスなんだ。

556 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 14:24:57 ]
たいしたことじゃないんですが、
a = [0 0 1 1 1 0 0 0 0 1 1 1];
とあったときに、3:4, 9:11 のように連続点を抜き出すのに楽な方法ってないですかね?
b = find(a); として b = [3 4 9 10 11]; の状態から 3:4, 9:11 と2つに分ける方法でも良い。

今はループ回しているんですが、matlab だし、何か楽な方法がないかなぁと。
ちなみに、この 3:4, 9:11 の表現は、
c =
[3 4;
9 11];
のようにしているのだけれど、別になんでもいいです。


557 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:36:53 ]
伝達関数からステップ入力に対する
オーバーシュートや静定時間を求める関数ってありますか?

558 名前:デフォルトの名無しさん [2008/05/22(木) 21:12:07 ]
>>556
aを、微分(差分)してみるといいかもしれない

559 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:42:58 ]
>>558
おぉおもしろいアイデアだ。
D = conv(a, [1 -1]);
starts = find(D == 1);
ends = find(D == -1) -1;
ind = [starts(:) ends(:)];
でいけました。うほっ。とんくそ。

560 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:01:47 ]
>>557
stepinfo
ただしR2006a以上のControl System Toolbox

561 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:12:10 ]
>>560
ありがとうございます。でもうちのじゃ使えなかったみたいです。
あきらめます。

562 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 19:44:51 ]
過去にMATLABにLISPのmap関数の様なものがあるかと質問したものです.
その後,mexを作って解決しましたが,MATLABには標準で,arrayfunやcellfunといった同様の関数があることが分かりましたので一応報告しておきます.



563 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 03:32:38 ]
ちゃんと聞けば教えてあげたのに。

564 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:18:05 ]
すいません.コンソールで値の入力を要求して,その結果を変数に代入するような文はどう書くのでしょうか?
Please imput value of x :
と表示させてxの値を入力させたいのです.

565 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:18:29 ]
inputですた

566 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:32:32 ]
すいません.自己解決しました.

567 名前:デフォルトの名無しさん [2008/06/01(日) 21:22:19 ]
図をepsで保存してイラレで読み込むと
マイナスが見えなくなるのですが
これってどうしたらいいのですか?

568 名前:デフォルトの名無しさん [2008/06/03(火) 14:59:19 ]
feval(fnc,r)
でfncに'sin'とかは入れてsin(r)を計算できるのですが、
x^2などのxにrを入れて計算するのはどうすればいいですか。

569 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 17:23:50 ]
>>568

feval(@(x) x^2, r)

570 名前:デフォルトの名無しさん [2008/06/04(水) 18:58:14 ]
matlabで多目的整数計画問題って解けるんですか?
fminimax()の変数が整数版みたいなやつが欲しいんです。
fminimax()の条件をいじって、変数を整数に縛ろうと思ったんですけど、
やり方もわかりませんし・・・

571 名前:デフォルトの名無しさん [2008/06/04(水) 21:26:37 ]
縦軸の値から横軸の値を表示することはできますか?
たとえば、y=2xのグラフをxを1〜10まで0.1刻みで描いたとします。
そのとき、y=5のときのx値を知りたいわけです。
刻み幅が大きく合致する値がない場合はどうなるのでしょう?

572 名前:デフォルトの名無しさん [2008/06/04(水) 21:40:04 ]
>>571
interp1dをつかったら?



573 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:27:43 ]
>>571
推定するしかねーだべが。

574 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:21:50 ]
matlabの関数の説明が日本語で書かれているサイトないでしょうか?
できればURL張ってくださいorz

575 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:35:26 ]
matlab の中の人たちって何者?
特に toolbox とか数学的に難しいものもあるから、
それを実装できる知識を持っているが、
研究者やらずに matlab 開発しているとか良くわからない。
ph.d 持ちの人たちなのかな?

576 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:13:20 ]
大丈夫、私も数学的知識はないけど数学関数の実装は(数学屋に書いてもらったアルゴリズムに基づいて)行っている。

577 名前:デフォルトの名無しさん [2008/06/07(土) 17:31:53 ]
>>574
「MATLAB ヘルプ」でぐぐれ

578 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:40:44 ]
>>575
「MATLAB ヘルプ」でぐぐれ

579 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 14:51:55 ]
Unix版とWin版で何か、違いはありますか?


580 名前:デフォルトの名無しさん [2008/06/16(月) 09:27:12 ]
変わんない

581 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:48:40 ]
「MATLAB ヘルプ」でぐぐれ

582 名前:デフォルトの名無しさん [2008/06/25(水) 20:53:55 ]
配列のindexing をC/C++みたいに 0 始まりにすることってできますか?



583 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 10:32:35 ]
「MATLAB ヘルプ」でぐぐれ

584 名前:デフォルトの名無しさん [2008/06/26(木) 19:17:32 ]
>>583
お前は首くくれ

585 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 21:14:55 ]
>>582
できないと思う


586 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:06:29 ]
>>584
カレーはククレ

587 名前:デフォルトの名無しさん [2008/06/27(金) 08:35:39 ]
金かけたくないなら、pylabいいよ

588 名前:デフォルトの名無しさん [2008/07/01(火) 04:20:23 ]
h=[1 0.8 0.4 0.2];
x=[1 0 0 0 0];
y=convol(h,x)
subplot(4,1,1)
xa=1:7;
plot2d(xa,y,style=-2,rect=[0 0 8 2])

のプログラムを実行すると
plot2d: first and second arguments have incompatible dimensions
とエラーが出ます。
どう対処すればいいですか?誰か教えて下さい。

589 名前:デフォルトの名無しさん [2008/07/01(火) 06:45:02 ]
xaとyの数が違うんじゃないの?

plot2d(xa,y(1:length(x) ...

にしたら?

590 名前:しっとり [2008/07/04(金) 17:42:43 ]
突然すいません。
MATLABでLeonhardの軌跡ってどのように描けますか?教えて下さい。

591 名前:デフォルトの名無しさん [2008/07/04(金) 18:01:39 ]
こんにちはいきなりですが質問です。
例えば100行100列のランダムな値をもつ行列から上位30点の要素を抽出するにはどうしたらいいでしょうか?
誰か教えてください

592 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 20:23:06 ]
a=rand(100:100);
b=create_set(a);
c=b(length(b)-29:end)



593 名前:デフォルトの名無しさん [2008/07/05(土) 10:59:13 ]
>>592
素早い回答ありがとうございます
早速やってみます

594 名前:デフォルトの名無しさん [2008/07/07(月) 04:26:21 ]
質問です 次のようなアプリを作りたいのですがMATLABを使い始めて日が浅いので見当がつきません、
作り方・コードを教えて下さい お願いします。

フォルダの中に「PC」等の2文字が書かれたbmp画像がN枚ある
一枚一枚を任意の場所で左右にカットする(PとCが分かれるように自分で分ける線の位置を決める)
それぞれ○○○○○L.bmp ○○○○○R.bmpとリネームして同じフォルダに保存する
この作業をN回繰りかえし終了
図:www.dotup.org/uploda/www.dotup.org22131.jpg

595 名前:デフォルトの名無しさん [2008/07/07(月) 18:25:14 ]
あんまり甘やかすのは、アレな気がするけどこれでできるはず…
問題は、分割位置が固定されているのか、問題毎に違うのか…。
プログラムで分割位置を判別は簡単じゃないと思うけど

% Image Prosessing Toolboxがインストールされていて
% 画像ファイルはRGB形式の仮定で行きます
% 違う場合は若干書き換えてください

filename = { 'image1.png', 'image2.png' }; % ファイル名を書いたリスト

l=length(filename);
for i=1:1
I=imread( filename{i} ); % 画像の読み込み
I=rgb2gray(I); % 画像をグレースケールに変換
[m,n]=size(I);

sep=100; % 分割位置を指定

% 画像の保存領域を作成
IR=zeros(m,sep);
IL=zeros(m,n-sep);

% 画像を転写
IR = I(:,1:sep);
IL = I(:,sep:n);

% 書き出し
imwrite( IR, strcat([filename{i},'R.bmp']), 'bmp' );
imwrite( IL, strcat([filename{i},'L.bmp']), 'bmp' );
end


596 名前:594 [2008/07/08(火) 00:29:39 ]
>>595
ありがとうございます

>>問題は、分割位置が固定されているのか、問題毎に違うのか…。
画像ごとに違う位置で分割したいので分割位置を一枚一枚その度に自分で決めれるようにしたいのです
説明が分かりにくかったかもしれません、↓実際のファイル内はこのような感じです
www.dotup.org/uploda/www.dotup.org22827.jpg
これをそれぞれ「退」と「院」に分割して保存したいのです
しかし画像によって分ける位置が違うので手動で分割位置を決めれれば…と思っています
>>% Image Prosessing Toolboxがインストールされていて
>>% 画像ファイルはRGB形式の仮定で行きます
Image Prosessing Toolboxについて簡単に調べてみましたが
多分インストールされていると思います、MATLABのタイプ(?)は[R2007b]です。
画像ファイルはモノクロビットマップです
>>filename = { 'image1.png', 'image2.png' }; % ファイル名を書いたリスト
画像が1000枚近くあって名前もバラバラなのですが・・・全ての名前を書き出さずにできないでしょうか

cut.mと名付けこのまま実行してみたところ、このようなエラーが出ました。一応載せておきます
??? エラー ==> imread at 315
ファイル "image1.png" は存在しません
エラー ==> cut at 5
I=imread( filename{i} ); % 画像の読み込み

597 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 07:31:40 ]
コード中で.pngとファイル名を指定しておきながら.bmp画像しか用意してなかったんだろ
そのまま実行するという暴挙に出てエラーが出ましたとか言ってしまう神経が以下略だぜ

598 名前:596 [2008/07/08(火) 13:26:40 ]
>>597
その通りですね…冷静に考えればなんと当たり前な…

image1.pngとimage2.pngを用意して実行したところ、今度はこのようなエラーが出てしまいました
??? エラー ==> rgb2gray>parse_inputs at 82
MAP must be a m x 3 array.

エラー ==> rgb2gray at 35
X = parse_inputs(varargin{:});

エラー ==> cut at 6
I=rgb2gray(I); % 画像をグレースケールに変換


599 名前:595 [2008/07/09(水) 16:16:09 ]
えっと、答える私も私なんだけど少しだけ叱らせて。
ここは初心者に対して伝統的に厳しいスレではないけれど、それを考えてもあなたのレベルはちょっと酷い。
私も大した事は言えた立場ではないけれどMatlabが可哀想なのでせめてもう少し勉強してあげて。

一応回答するけど、画像を一括指定したい場合は、知恵を絞りましょう。
指定したディレクトリにある画像をすべて取得するならこんな感じ

% 指定したディレクトリにあるファイルのファイル名をリストで取得
imgdir = 'sampleimages'; % 画像がおいてあるフォルダの名前
files = dir(imgdir); % 指定したフォルダのファイル名を取得する
filename = {}; % ファイル名を書いたリスト
% ディレクトリのファイルからファイル名を取得
for i=1:length(files)
if exist(imdir+files(i).name)
filename{i}=imdir+files(i).name;
end
end

バグがおこっている行はRGB画像をグレースケールに変換するものなので画像のフォーマットの問題。
該当行を

I=im2uint8(I); % 画像をバイト型からグレースケールに変換

とかに差し替えてやればよいと思う。

あとは画像の分割位置を手動で決定するにはGUI画面を作らないといけないね。
ここからが初心者には大変なんだろうけど、面倒くさいな…


600 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 13:22:44 ]
アルゴリズムを考えることが
レポートの課題なり、研究のポイントなんだから、
そこまでここで教えてもらおうなんて思わないように。


601 名前:今風若者気質 mailto:sage [2008/07/10(木) 13:56:22 ]
>>600
何言ってるんですか、レポートにしろ卒研にしろ、抜ける手は抜くのが一番じゃないですか。

602 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 14:20:33 ]
勉強するために大学行くんだろ。
就職のためなら専門学校いけよ。



603 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 14:26:22 ]
頭は使わないと劣化していくよ
教授を見ていれば分かるだろ

604 名前:今風若者気質 mailto:sage [2008/07/10(木) 17:38:02 ]
>>602
何言ってるんですか、専門学校の就職率なんてカスですよ。

605 名前:595 [2008/07/11(金) 12:51:43 ]
uproda11.2ch-library.com/src/11100794.zip.shtml
あぷろだ初めて使うんだけどこれでいいのかな?
pass:1111
削除キー:1111

使い方
・samplesフォルダに全ての画像を移す
・imageselect.mをmatlabから起動
・開始ボタンを押した後、画像の分割位置をクリックで選択
見た目に良く分からないかもしれないけどちゃんと分割された画像が保存されています。
手抜き仕事なのでバグあったら頑張れ


606 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 21:26:56 ]
>>605
おまえさんのアホさに感動を覚える

607 名前:605 [2008/07/14(月) 13:46:22 ]
あっはっは、出来が酷いのは手抜き中の手抜きだから勘弁してやってください。まぁ、赤の他人に対しては良くやったよね…
ってそういう意味じゃないか…
一応やっている分野の近い相手なので、何となく情が働きまして…
matlabのGUIプログラミングはVBなどと比べても決して難しい物ではないけれど、あのレベルで習得させてやらせるのは辛いしね

608 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 08:28:19 ]
GUIにせずとも、マウス入力で区域指定できるのではないかと

609 名前:デフォルトの名無しさん [2008/07/15(火) 23:33:57 ]
filter関数がC言語でかけねぇ。
誰か作ってないかなぁ

610 名前:デフォルトの名無しさん [2008/07/16(水) 00:42:37 ]
どんなフィルター?平滑化なんかの2次元フィルターってこと?

611 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 02:46:42 ]
matlab の filter 関数でしょ。

612 名前:デフォルトの名無しさん [2008/07/16(水) 07:39:55 ]
そうそう。matlabのbutter関数で係数を求めておいて、
それをつかってfilter(b,a,signal)って使うことのできる関数を
Cで作りたいわけ



613 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:06:30 ]
簡単じゃん。


614 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 05:49:41 ]
matlab での代表的なコーディング規約ってないの?
built-in 関数みてると大文字はおろか _ すら使ってないのがほとんどな気がするんだけど、そういうもん?
ちょっと、これじゃやりにくい。

615 名前:デフォルトの名無しさん [2008/07/24(木) 06:52:25 ]
昔のFORTRANの流れを汲んでるから、ひょっとすると関数名は6文字までだったりしてね。
個人的には _ を使った関数名は自作関数というぐあいに区別しているけど。

616 名前:デフォルトの名無しさん [2008/07/24(木) 18:29:52 ]
MATLAB(R2008a)で関数自体の引数の数を得る方法はありますか?

無名関数を引数としてその無名関数自体の引数の数を返す関数を作りたいのですが。
また,関数自体はまだオブジェクト化されていないのでしょうか?
その様なクラスも見当たらないですし。

617 名前:デフォルトの名無しさん [2008/07/24(木) 21:09:47 ]
関数自体ってどういう意味?引数の数はnarginだろ普通

618 名前:デフォルトの名無しさん [2008/07/24(木) 21:44:37 ]
>>617
>引数の数はnarginだろ普通
それはある関数呼び出しに関する引数の数だろ。

phpspot.org/blog/archives/2008/04/javascript_65.html
これで分かるかな?


619 名前:デフォルトの名無しさん [2008/07/24(木) 23:09:42 ]
無理じゃね?
matlab は数値演算はいいけど、そういう補助機能が弱いよな。
>関数自体はまだオブジェクト化されていないのでしょうか?
そんなことする気あるの?なんかで言ってた?

620 名前:デフォルトの名無しさん [2008/07/25(金) 02:27:23 ]
というか、MATLABをプログラム言語としてみるとこれ以上ダサい文法の言語は正直無いと言えると思う。
最初に行列を格好良く計算できる機構と入れたのは良いけど、やっぱり後で条件分岐やループが必要だと入れたあたりから破綻が始まっている

そこからは無計画と言うしかない文法の拡張が行われている
比較的最初に気づくものでも
関数作りたかったら別にmファイルを作ってそこに書かないといけないとか
関数は最後にendで括っても括らなくても良いとか
何故か決して使いやすいとは言えない関数名がC言語風とか
行列計算の書式しか無かった頃だけ直感的で利点があった、何故かインデックスが1から始まるとか

正直、簡潔な書式の行列計算+強力なplot機能+インタプリタですぐ結果が見える使いやすさなのだと思う
本当は文法関係は言語の進化に合わせて再設計が必要な時に来ているのだと思う。もう無理だけど…。
>>614
mlint関数で文法チェックとかどうでしょう?

621 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:50:46 ]
スライドバーのコールバックで処理するとき、
ドラッグが終わってバーの位置が確定した時だけ処理を行うことはできないでしょうか?

バーが変化するごとにいちいち変化してると重いですorz

622 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:20:46 ]
>>621
アルゴリズムの問題だと思う。
ちょっと考え直したら?



623 名前:MATLAB初心者 mailto:sage [2008/07/30(水) 00:02:55 ]
MATLABを使って
下記のようなニュートン法でα(ステップサイズ)を
適応的に求めるプログラムを作りたいのですが、
一向に分かりません。FORTRAN77を今まで使っていましたが
私のいる会社では、今年からMATLABになってしまったのです。
申し訳ありませんがこの掲示板をごらんになっておられる皆様
ご教授御願いいたします。
x(k+1)=x(k)−αinv(H(x(k)))g(x(k))
g(x(k))はf(x(k))の1次微分
H(x(k))はf(x(k))の2次微分


624 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 02:42:36 ]
宿題ぐらい自分でやろうぜ
つーか、ほとんどmatlab関係なくね?

625 名前:デフォルトの名無しさん [2008/07/30(水) 03:43:34 ]
FORTRANならわかるの?なのに matlab だとわからないの?

626 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 12:54:20 ]
アルゴリズムが分からないのなら
教科書を読め

627 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 23:23:53 ]
matlab の関数名、変数名は lower_case
のように小文字と _ を使っている人が多いようだけど、
なにか理由があるのかね?
なんとなくそういうスタイルのテキスト多いのかな?
datatool.com/downloads/matlab_style_guidelines.pdf
の人は変数名には lowerCamel を押しているようなんだけど。
#関数名は _ もなしの lowercase 押してるけど、これはないよな。よみづらい。

628 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 23:45:26 ]
matlab を起動すると勝手に IME が日本語入力モードになります。
matlab で日本語入力モードになる意味がわからないので、
止めたいのですが、何か手法はあるのでしょうか?

629 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:09:24 ]
ここのスレ、性格悪い低脳多いな。


630 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 13:49:10 ]
>>627
空白をあらわすのにlower caseを使う人がアメリカ流の人には多いと思う

631 名前:デフォルトの名無しさん [2008/07/31(木) 23:33:08 ]
matlabのmファイルからwavをsound関数を使って再生しているのだけど、
途中で止めることができない(;_;)。

途中で止めることはできないのでしょうか?

コードは以下
[y, Fs] = wavread('test.wav');
sound(y, Fs);

632 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 05:27:56 ]
>>630
lower_case と lowerCamel どっちがいいかなぁ・・・
lower_case は古い流行な気がしないでもないんですよね。
UNIX というか GNU C コーディングスタイル的な。



633 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 07:11:06 ]
>>631
最初から止めたい位置がわかっているのなら、
マトリックスの部分指定。
とにかく止めたいのなら、CTRL+C

634 名前:デフォルトの名無しさん [2008/08/02(土) 17:41:28 ]
>>632
JavaScriptなんかの場合は最初は自分で書いたライブラリは_で区切るなんて風習もあったけど
そのうちライブラリを自分で配る人達が出てきてそれが普及してからはlowerCamelとJavaScriptの言語の標準に従う様になった。

最初は遊びで書いた関数も、そのうち人に配る可能性が無いわけでもないし、MATLAB標準に黙って従うのが一応正しい姿勢となるのでは?


635 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:43:38 ]
MATLABの大文字小文字の区別って、完全に可能なんだっけ?

636 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 05:07:36 ]
>>634
でも、matlab 標準というと、例えば bankrupt company が
bkrptcmpny みたいなかんじじゃない?
これはひどいでしょ?実際は、ここまでひどくはないけど、
_ もなにもないし、まぁひどい。

>>635
ファイル名 == 関数名、だから windows では大文字小文字が区別つかない。
けど、pca という関数がある時に、Pca を作るようなセンスの人はいないだろぉと思うし、
このために、lowerCamel は絶対ダメ!っていうのはもったいない気がする。

637 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 05:18:56 ]
>>634,635
で、 toolbox 作っている人をみると、関数名は、
lower_case みたいに書いている人が多いので、そちらが標準かと思ったら、
ttp://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f4-39683.html
を見ると関数名が makeParabola みたいに lowerCamel になってたりするんだよね。

でも、やっぱりファイル名の問題で、lower_case にしようかと思ったとすると、
変数名も lower_case にしたくなってくるわけだけど、
ttp://www.mathworks.com/access/helpdesk/help/techdoc/ref/persistent.html
とかみると変数名は lowerCamel だったりするんだよね。

今、リンクないけど、lower_case な関数名、変数名を使っているマニュアル例もあった。

というわけで、matlab 標準がどっちつかずなもんで、むきーという状況。

638 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 05:29:17 ]
なんだか長くなって申し訳ないけど、
C も標準は、略称使いの _ もなしの lowercase と思っていいいと思うけど、
OpenCV とか OpenGL は lowerCamel を使っている。

個人的には lowerCamel を使いたいのだけれど、
ファイル名 == 関数名の所で悩んでいる。
関数名は lower_case のような形で書いて、変数名は lowerCamel
ってアリなセンスなのかな?

ところで、private 関数的なネスト関数の名前は最初に _ でも付けようか、
と思ったら matlab では変数、関数名の最初を _ にはできないのね。がっかり。

639 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 05:03:28 ]
お前プログラム書くの遅いだろ

640 名前:デフォルトの名無しさん [2008/08/05(火) 13:46:17 ]
>というわけで、matlab 標準がどっちつかずなもんで、むきーという状況。
で、個人的意見なのですが、基本的にはMATLABのユーザーは物理系の人で、プログラミングの専門家やほかの言語に詳しい人は少ないのでそういうリテラシは少し低めなのではないでしょうか?
OpenCV とか OpenGLとかはC++の文化を意識してああいう風になっているんでしょうねぇ
オブジェクト指向を基本的には出来ないとはいえ、一応matlabの関数名の文化は、Cからの影響なのを考えるとlowerCamelの記法は可なのではないでしょうか?

> ところで、private 関数的なネスト関数
Lispでは「高階関数」と呼んでいるのでこれに合わせると良いのでは?

641 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:59:29 ]
>>640
>lowerCamelの記法は可なのではないでしょうか?
やっぱり問題は関数名なんだよね

>Lispでは「高階関数」と呼んでいるので
高階関数ってラムダ関数ちゅうか関数ポインタを受け取ったり
返したりって関数でしょ?fminsearch みたいな。
ネスト関数ってのはこっちね。
ttp://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f4-39683.html

642 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 11:40:35 ]
速く走らせるには工夫が要るけど
それほど大きなパッケージを作るわけでもなかったら、
書法は気にしなくてもいいのでは、って思う。
おれはそのレベルのユーザー。



643 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 02:02:31 ]
z = (2*cos(x.)+1)(2*cos(y.)+1)
のグラフを書きたいのですが、上記の式で
エラー: 一致していないか、予期せぬ括弧か大括弧です。
とでます。x,yの値は
x=-3:0.1:3;
y=-3:0.1:3;
このように設定しております。
どなたか教えてください。

644 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 02:35:46 ]
すみません。.の意味を取り違えてました。

645 名前:デフォルトの名無しさん [2008/08/07(木) 12:05:48 ]
質問があります


エクセルデータを読んでグラフにしたいのですが、ファイルネームが
ABC-01.xls
ABC-02.xls
.
.
.
ABC-09.xls
と続くので、forを使って
for I=1:9
data=xlsread('ABC-0'num2str(I)'.xls');

hold on
plot(data)
end

としたいんです。
でも2行目にどうやっても忠告がでてしまいます。
文法うんぬん以前に考え方自体が間違ってるのでしょうか?

646 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 12:28:00 ]
こんなシンプルなのに考え方もなんも無いって。単純に文法の問題。
「こう書けるだろう」と勘で書いたところがあるでしょ?
そういうところが本当に正しいかどうかチェックしてけばいい。
help strings


647 名前:デフォルトの名無しさん [2008/08/07(木) 12:55:00 ]
やっぱりそうですよね。
プログラム自体が始めてから数週間なのでグダグダです。
ありがとうございました

648 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 15:07:13 ]
アイディアとしてはいい線いっているので、
あと少しだけ、知れば、サクサク作業できるようになると思う。

649 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 20:58:54 ]
すいません、ぐぐっても情報が少なすぎたので質問させてください。
JMatLinkというJAVAとMatlabをつなげるツールをインストールしたいのですが、
www.held-mueller.de/JMatLink/install.html
に書いてある通りにしても上手くいきません。
上のリンク先に書いてあるように,
c:\WINDOWSにJMatLink.dll をコピーし,
c:\JMatLinkでDos窓を開き、
%java TestGui
と打ち込んだのですが,
java.lang.NoClassDefFoundError
というエラーが出てテストウインドウが開きません.

OSはWindows XP, matlabのバージョンは7.3.0、
JAVAはjdk1.6.0_05を使用しています.

どなたか、JMatLinkを使用している方がいましたら、
何が悪いのか教えて頂けないでしょうか。

650 名前:デフォルトの名無しさん [2008/08/07(木) 23:14:34 ]
Matlab 2007bと、Viual Studio 2005の質問です。
既存のC++で作られたライブラリの関数をラップして
(要は、mdlOutputs内で既存の関数をコールする)、
C++ MEX S-functionを作ろうとしています。
Visual C++ 2005上で作成/ビルドして、*.mexw32を作っているのですが、
simulink上でこれを実行しようとすると、
「無効なMEX-ファイル*****; 指定されたモジュールが見つかりません。」
というメッセージが出ます。

サイバネットが出している、C-MEX-S-ファンクションチュートリアル
www.cybernet.co.jp/matlab/library/library/file/T/TT034.pdf?id=TT034
の、「5.1 既存Cコードの利用」に、
1. C MEX S-Function 内で外部関数のextern 宣言を行う。
2. コンパイル時に外部ファイルもコンパイルする

とあったので、1.のみ行って、なんとかビルドはできたのですが、まだ同じ
エラーメッセージが出ます。
やはり2.もしないといけないようなのですが、VC++で外部関数も一緒にコンパイルする
方法が、わかりません。
上記のマニュアルに書いてある方法は、Matlabコマンドラインからの
すごく単純な構成のもののコンパイルなので、今やろうとしている、
たくさんのヘッダファイルやらdllやらをリンクしているモジュールの
コンパイルは、とても難しそうです。

651 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 23:25:33 ]
>>647
>>646に書いてあるように help strings すれば
必要なことが書いてるよ。

MATLABはちょっとクセがあるから他の言語を知ってる人が
いろいろひっかかるポイントがあると思うけど
ヘルプはけっこうちゃんとしてると思うから
どんどんヘルプ読んでいけばすぐ覚えるよ。

652 名前:デフォルトの名無しさん [2008/08/07(木) 23:34:38 ]
>>616

ezplotとかだと関数じたいを引数として渡してるよね。
無名関数が可能なのかは知らない(たぶん出来ない)。



653 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 23:50:55 ]
help function_handle

654 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 01:53:14 ]
無名関数は知ってるけど、
その引数の数を調べられないか?ってのが大事なんじゃろ。
で、matlabの引数って
function hoge(a,b,c)
と書いてあっても
hoge(a,b,c,d)
と呼べるっちゃよべるし、呼び出しの時点になるまでわからないのでは富田

655 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:24:53 ]
matlab.exe のオプションってどう見るの?
--help でも matlab 起動するし。

656 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 06:02:13 ]
>>654
>>652に答えてるのにお前が知ってたらなんなんだよ。。
だいたい呼び出しの時点の引数の数を呼び出す前に知る方法があるわけないし。
何言ってるのかわからんが。

>>616で書いてるのは定義にある引数の数だろ。だったらnargin。


657 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 05:55:31 ]
[X,Y,Z] = peaks(30);
surfc(X,Y,Z)
で出る図を png で保存すると、
真っ黒画像が作られるのですが、
みなさんはきちんと保存できたりしますか?
ぐぐってもだれも surf がおかしいとか言っていないようで。

658 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:18:21 ]
GUIでエディットテキストを30個作り、これにあらかじめ定義しておいた15*2サイズの行列Aの
各成分を一つずつ表示しようとしてます。edit1=>A(1,1), edit2=>A(1,2), edit3=>A(2,1)という
具合にです。

set(handles.edit1,'string',num2str(A(1,1)));

などとSet文を30個書くのは効率が悪いんで、簡潔に書く方法を探しています。とりあえずevalを
使えばいいのかと思い、

for i=1:30
 if rem(i,2)==1
  eval(['set(handles.edit' num2str(i) ',''string'','...
   'num2str(A(' num2str(ceil(i/2)) ',1)));']);
 else
  eval(['set(handles.edit' num2str(i) ',''string'','...
   'num2str(A(' num2str(2/i) ',2)));']);
 end
end

としてみましたが、「evalのインデックスはpositive integerかlogicalでないといけない」みたいな
エラーが出てしまいます。何が悪いんでしょうか。あるいは、eval以外にもっと良い方法があれば
教えてもらえると助かります。

659 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 14:37:19 ]
別ディレクトリの関数を addpath せずに実行する方法ってないでしょうか?
その関数を実行して、中で一連の addpath をさせたいのです。

660 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 14:41:36 ]
>>658
とりあえず sprintf のほうが見やすそう。

661 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:55:16 ]
>>657
オプションを設定

662 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:56:25 ]
>>658
エラーの内容そのまま。
1行づつ、確認しろ。



663 名前:658 mailto:sage [2008/08/15(金) 16:53:11 ]
レスくれた人達ありがとう。

うおお、下から3行目の num2str(2/i) は num2str(i/2) とすべきでしたね。evalの性質の理解不足
とか以前の問題でしたorz あと、sprintfを提案してくれた人もありがとう。これからいろいろ試してみます。

664 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 03:08:34 ]
>>661
オプションって surf のオプション?どれ?

665 名前:658 mailto:sage [2008/08/16(土) 05:21:46 ]
昨日はどうも。もう一つだけ質問させて下さい。
>>658とは逆のケースで、30個のエディットテキストにユーザーが入力した値を、15*2サイズの
行列Aとして格納することを考えています。

guideでエディットテキストを配置すると、対応するm-ファイルにCallback関数が30個自動的に
生成されるので、それぞれの下部に各行列成分への格納文を書けばいいわけですが、やはり非効率的
なので、もっと良い方法を探しています。

この場合、これら30個の自動生成された関数宣言文を削除し、evalなりfevalなりを使って、30個の
関数を変数を使ってまとめて定義するような文を手で打ってもいいんでしょうか? 確かこの手の、
「guideを経由しないでm-ファイルに直打ち」はNGのケースがある、と何かの本で見たことがある
んですが。

あるいは、このような場合での常套手段が他にありましたら教えて下さい。

666 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 12:10:20 ]
>>659
スクリプトでいいならrunでできるけど
関数を呼ぶにははそれと組合せて
function handleを使うとかかな。

それかベタだけど
wd=cd(dir); func; cd(wd);
とか。


667 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 12:23:29 ]
>>666
addpath をしたいだけなので、
スクリプトにして、run で呼べばよさそうですね。ありがとう。

668 名前:デフォルトの名無しさん [2008/08/17(日) 19:18:43 ]
ランダムな行列の中から局所的な最大値とその座標を求めたいのですが、
何かいい方法がありますでしょうか?
max関数を2回使うことで、大域的な最大値は求まるのですが。。
局所的な最大値を求めるアイデアがどうしても出てきません。。
お願いします。

669 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 23:01:34 ]
>>668
大域的なmax値をNaNで置換して、複数回走らせる
あるいは
元データを微分する

670 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 07:09:50 ]
>>668
局所的な最大値って極大値でいいのか?
いずれにしても「ランダムな行列」がどういうものであるかと
何を「局所的な最大値」と定義するかが決まらないと
答えられないのでは?

671 名前:668 [2008/08/18(月) 11:29:38 ]
レスありがとうございます。

具体的に書くべきでした。
例えば、
1 4 6 8 4 6
4 5 1 9 0 7
4 0 9 4 1 6
4 7 5 9 0 2
とあった場合、3列目の9と4列目の2つの9、6列目の7が最大値(=極大値)
と考えたときです。
お願いします。

672 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 22:10:41 ]
座標が整数値でない画像データを可視化したいんですが、どうやったらいいですか?
データの形式としては(x, y)が座標、(R, G, B)が与えたい色として

x y R G B
0.1 -1.1 10 20 30
0.5 0.3 112 30 11
-2.4 3.2 3 15 205

のようにn*5(nは行数)のベクトルデータとなっています。
これを穴があってもいいから通常の画像のように可視化したいんです。

点ごとにプロットする色を変えたらいいのかと思ったんですがうまくいかなくて



673 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 22:58:01 ]
>>672
座標を例えば 1 - 128 に正規化して、I = zeros(128); 後は for ループで
x = data(n,1); y = data(n,2);
I(x,y,1) = data(n,3);
I(x,y,2) = data(n,4);
I(x,y,3) = data(n,5);
とでも格納しなおして imshow するとかそういう単純な話だろ?

>>671
matlab central れ。

674 名前:デフォルトの名無しさん [2008/08/19(火) 04:39:11 ]
ある関数Fの最適化問題を解きたいんだけど、Fがゼロになった瞬間に
最適化を止めて次のことをさせたいような場合、どうしたらいいですか?
最適化にはNelder−Meadを使いたいので、Fminuncより
Fminsearchを使いたいです。

Fの値は定義上0より小さくなることはないので、一度0がでてからさらに
パラメター空間でサーチするのは単なる時間の無題です。

Fminsearchのコードがわかれば外にIF節をつけれてFの値が
0になったところで止めさせられるものの、どうしていいかわかりません。


675 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 07:27:11 ]
A = [1 1 2 1 3 4 5 1 1 2 3 6]
みたいなベクトルがあって、[1 2] のある位置を知るのに、
for ループを使わずにすむ方法ってありますか?
matlab ならありそうな気がするのですが
B = [0 1 0 0 0 0 0 0 1 0 0]
が返ってほしい。

676 名前:672 mailto:sage [2008/08/19(火) 20:22:10 ]
>>673
即レスありがとうございます
ちなみに正規化ってどうやったらいいんでしょうか
xの列でソート→代入、yの列でソート→代入じゃ効率悪すぎですよね
手早くやれる方法はありますか?

677 名前:デフォルトの名無しさん [2008/08/19(火) 21:11:55 ]
1から100の整数をランダムに並び替えるプログラムを教えてください!

678 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 21:27:19 ]
>>677
宿題は自分でやれ

679 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:42:24 ]
>>677
randperm

>>676
ソート?なぜにソートが・・・・
low = [1 1];
high = [128 128];
[N, d] = size(data); % d == 5
mini = min(data(:,1:2), [], 1);
maxi = max(data(:,1:2), [], 1);
data(:, 1:2) = data(:,1:2) - repmat(mini, N, 1); % move min to 0
data(:, 1:2) = data(:,1:2) ./ repmat(maxi-mini, N, 1); % [0, 1]
data(:, 1:2) = data(:, 1:2) .* repmat(high-low, N, 1); % [0, high-low]
data(:, 1:2) = data(:, 1:2) + repmat(low, N, 1); % [low, high]
data(:, 1:2) = fix(data(:, 1:2)); % int

680 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 02:50:49 ]
すみません、どなたか>>665が分かる方いらっしゃいますか?
本質的には、いかにしてCallBack関数をまとめて設定するか、ということだと思います。

681 名前:668 [2008/08/20(水) 14:53:04 ]
>>673
matlab centralにあるということでしょうか?
探してみましたが、わかりませんでした。。
もしよければどれか教えてもらえないでしょうか?
お願いします。

682 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 15:05:44 ]
えー、なんで?極大値は英語にしたら extreme か extrema だよ?
extrema.m



683 名前:668 [2008/08/20(水) 23:06:13 ]
>>682
完全に見落としてました。。
これでいけそうです。
ありがとうございました!

684 名前:デフォルトの名無しさん [2008/08/21(木) 10:04:17 ]
for文を使わないことはできますか?

2次関数(ax^2+bx+c)を入力にして、総あたりでa,b,cのパラメータを推定する、というようなことをやっています。
入力をf(x)として、-5<x<5の範囲を見てるのですが、コードは
error=inf;
for a=-10:1:10
for b=-10:1:10
for c=-10:1:10
for t=-5:0.1:5
e=(f(t)-(a*t*t+b*t+c))^2;
if (error>e);
error=e;
end
end
end
end
end

というような感じになってます。これをfor文を使わないでコロンを使った形式にできるものなのでしょうか?
よろしくお願いします。



685 名前:デフォルトの名無しさん [2008/08/21(木) 10:07:19 ]
すみません、間違えてタブを使ってしまったので投稿しなおします
******

for文を使わないことはできますか?

2次関数(ax^2+bx+c)を入力にして、総あたりでa,b,cのパラメータを推定する、というようなことをやっています。
入力をf(x)として、-5<x<5の範囲を見てるのですが、コードは
error=inf;
for a=-10:1:10
for b=-10:1:10
for c=-10:1:10
for t=-5:0.1:5
e=(f(t)-(a*t*t+b*t+c))^2;
if (error>e);
error=e;
end
end
end
end
end

というような感じになってます。これをfor文を使わないでコロンを使った形式にできるものなのでしょうか?
よろしくお願いします。

686 名前:デフォルトの名無しさん [2008/08/21(木) 10:10:21 ]
スペースもダメみたいですね…みにくくてすみません。
よろしくお願いします。

687 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:16:19 ]
repmat を駆使して4次元配列にまでもっていけばきっとできる。
で、あとは min で argmin うけとる。

688 名前:684 [2008/08/21(木) 16:35:55 ]
>>687
ご指摘いただいた方法でできました。
ありがとうございます。

689 名前:デフォルトの名無しさん [2008/08/21(木) 21:09:03 ]
>>684って行列の中身が一緒じゃないんでしょ?
だったらrepmatじゃだめじゃね?
ってか俺も今
for a=1:10
for b=1:5
kotae(a,b)=a+b
end
end
って感じのやってるけど、これfor文じゃなくせるの?

690 名前:デフォルトの名無しさん [2008/08/22(金) 00:13:06 ]
matlab centralで拾ったファイルを動かそうと思ったんですが、
「500の最大の再帰呼出の制限達しました。制限を変更するには、・・・」
となって動きませんでした。
制限を2000あたりまで変更しても同じ結果で。3000くらいになるとMatlabが
強制終了してしまいました。
これ何か対処法ないでしょうか。。??

691 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 02:39:48 ]
mファイルの作成者に聞くべきじゃない?
つか、少しは自分でk

692 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 02:56:10 ]
>>689
なくせう。for 文使うとゲロのろいぞ matlab。



693 名前:デフォルトの名無しさん [2008/08/22(金) 09:31:00 ]
コロンでできるの?

694 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 10:26:09 ]
できる。
kotaeって10x5のマトリックスになるだろ?

695 名前:684 [2008/08/22(金) 17:33:09 ]
>>689
meshgridというのを使うとてっとり早いです。
行列にして掛け算する、ということです。
687さんがおっしゃった通り、repmatを使ってもできます。
というか、repmatを使ってmeshgridが実装されてるようなイメージです。

696 名前:MATLAB初心者 [2008/08/23(土) 12:06:04 ]
はじめまして。
MATLABをはじめたばかりの初心者なのですが、連番をつけるところで悩んでおります。
文字列の配列で0001、0002、..... 、9999のように整数で任意の桁数にしたいのですが
うまい方法はありませんでしょうか?

エクセルでやっていたときは、上記の場合であれば”000”という文字列と整数の値を結合し
左から4文字を切り出して使用しておりました。

MATLABでもエクセルでやっていたような力技でやるしかないのでしょうか?

もしご存知の方がおりましたら、ご教示いただけませんでしょうか?
よろしくお願いいたします。

697 名前:MATLAB初心者 [2008/08/23(土) 12:12:11 ]
申し訳ございません。
上記のレスで左から切り出していたというのは誤りで、右から切り出しておりました。

698 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:51:58 ]
>>697
ttp://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/ref/?/matlab/support/manual/r13/toolbox/matlab/ref/sprintf.shtml

699 名前:MATLAB初心者 [2008/08/23(土) 15:46:04 ]
>>698

ありがとうございます。

大変申し訳ございません。私には、このページではsprintfでたとえば”1”を”00001”と定義する方法が理解できませんでした。
整数を5桁で表して、それを文字型にnum2strか何かで文字列に変換するようなことができるということでしょうか?

私の思い付きではstrcatをつかって696に書いたような力技で書く以外に方法がわかりません。

お手数をおかけしますが、ご教示いただいたページのどれを使用すればよいか教えていただけませんでしょうか?

700 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 16:25:44 ]
>>699
printf フォーマット
でぐぐればいろいろ解説があるよ。
C言語が元だけど自由度がかなり高いから覚えとくとよい

↓とりあえず解決策
str=sprintf('%05d',i)

701 名前:MATLAB初心者 [2008/08/23(土) 16:35:09 ]
>>700

取り合えずというか、そのものずばり私の欲しかった回答を書いていただいて、感謝の限りです。

お忙しい中、どうもありがとうございました。
これからも精進いたします。


702 名前:675 mailto:sage [2008/08/26(火) 03:23:35 ]
A = [1 1 2 1 3 4 5 1 1 2 3 6]
みたいなベクトルがあって、[1 2] のある位置を知るのに、
for ループを使わずにすむ方法ってありますか?
matlab ならありそうな気がするのですが
B = [0 1 0 0 0 0 0 0 1 0 0]
が返ってほしい。



703 名前:デフォルトの名無しさん [2008/08/27(水) 10:05:55 ]
findじゃだめ?

704 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 08:09:50 ]
俺の力じゃ5行が限界だった
x=find(A==1);
y=find(A==2)-1;
z=intersect(x,y);
B=zeros(1,length(A));
B(z)=1;
もっと簡単なのきぼん

705 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:26:43 ]
面白そうなので参加

((A(1:length(A)-1)+A(2:length(A))).*(A(1:length(A)-1)==1))==3

正の値で且つ後ろ一つは無視する前提
一般性があるかどうかは知らない

706 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:38:40 ]
size(A)も使ってみよう

707 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:15:31 ]
A(1:end-1)==1&A(2:end)==2

レベル低いなあ。
こんなのすらすっと出てこないってことは
よっぽど効率悪いコード書いてるんだろうなお前ら。

708 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:40:14 ]
煽るのは構わんがそれ全部ゼロになるぞ

709 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:46:06 ]
って1ズラしてるか
スマン

710 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 09:07:52 ]
MATLABの関数自体のコードを読んでみると
勉強になるんだけどな。

711 名前:デフォルトの名無しさん [2008/09/04(木) 13:25:51 ]
質問です。

MATLAB上で画像処理をする際に
画像のある画素(座標)を保存して
さらにその保存した座標のx方向成分だけ読み出すには
どういったコマンドを入力すればいいんですか?

712 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:42:08 ]
>>711
まず入門サイトでも読んだ方がはやくね?ってかはやい



713 名前:デフォルトの名無しさん [2008/09/04(木) 16:05:56 ]
2008からオブジェクト指向が充実したみたいで、
それについて詳しく解説してある本を知っていたら
誰か紹介していただけないでしょうか。
よろしくお願いします

714 名前:デフォルトの名無しさん [2008/09/08(月) 12:56:09 ]
誰か、MATLAB(2007b)で3次元の楕円球体の描き方教えてください。

715 名前:デフォルトの名無しさん [2008/09/08(月) 18:24:34 ]
定義したい変数名を、文字列を使って定義することは可能なのでしょうか?
例えば、
Data1 = 1;
Data2 = 2;



Data30 = 30;
と30個の変数を定義したいとき、for文を使って定義することは可能でしょうか?

716 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:43:57 ]
>>714
キーワードを英語でlookforするくらいはしようよ。

>>715
help eval


717 名前:デフォルトの名無しさん [2008/09/09(火) 11:36:43 ]
はじめまして、今matlabの勉強をしている者です。

matlabのエディットウィンドウで、文字の挿入ってどうやるんですか?
現状では入力してある行に文字を挿入すると後ろの文字が消えてしまい、
全文入力し直しになってしまうのです、これをwordなどみたいに
文字を挿入したら、文が自動で後ろに移動してくれるようにできないですか?

また、同様にスペースキーも文字間のスペースをあけてくれず
文字を消してしまうのですが?どうしたらいいですか?

OSは vinelinux4
matalab v7.0.1 SP1です

718 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:12:45 ]
MATLABっていうか
キーボードのinsert

719 名前:デフォルトの名無しさん [2008/09/10(水) 13:58:00 ]
GUIを作成して、
ボタンを押すとシミュレーションが実行するようにしたんですが、
GUIなしでコマンドから直接実行した場合だと160秒くらいで終わるのに、
なぜかGUIからだと260秒もかかるんですが、
なんでこんなにかかると思いますか?
やってることはまったく変わらないですが・・・。

720 名前:133.43.185.64 mailto:sage [2008/09/10(水) 21:20:24 ]
>>719
全然見当がつかん。
プロファイラを実行した状態で GUI 経由でシミュレーションを行って、
時間のかかっている箇所を割り出してから相談してもらった方がよいと思われ。

721 名前:デフォルトの名無しさん [2008/09/11(木) 00:44:20 ]
>>720
アドバイスありがとう。
実はこういう経験あまりしてなかったんで、
プロファイラとか使ったことなかったんです。
ちょっと調べて割り出してみます。

722 名前:初心者 [2008/09/11(木) 01:43:15 ]
非常に低レベルなことで申し訳ないのですが、
Cでいうポインタのような概念はMatlabにはないのでしょうか?




723 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:54:01 ]
>>722
ないはずだよ
wikipediaにも書いてある
まあ、google codeとかmatlab centralで検索すれば
自作のポインタ関数出て来ても可笑しくないけど

724 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 02:15:40 ]
>>722
デフォはポインタ
渡された変数を編集しようとした時点でコピーが始まる

725 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 06:15:09 ]
>>722
何をしたいのかをはっきりさせて
それをMATLABではどうやるのか、と考える方がいいよ。

他の言語のやり方をそのまま持って来ようとしても
そうは行かない場合は多い。MATLABに限らず。

726 名前:デフォルトの名無しさん [2008/09/14(日) 02:33:41 ]
質問です。

例えば
3,6,4,5,2
4,15,7,5,3
6,4,4,7,3

のような行列があってノイズで15だけ値が大きい場合には、
それを周りの数字に近い値に矯正(たしか平滑?)するにはどうすればいいですか?
自分が知ってるやり方だと、ノイズも含め全ての成分が平均化されてしまいます。
どうにかノイズ以外はそのままの値で、ノイズ部分だけを周りの値に馴染ませたいんです。

727 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 02:59:50 ]
10はノイズ? 13はノイズ?
15を適当に5とかにしたら「馴染んだ」ことになるの?

自分が何をやりたいかをまずは具体的にする。
君以外にそれがわかる人はここにはいないよ。

728 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 07:57:32 ]
実験データの改竄捏造でもしたいのかなw

729 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:03:36 ]
>>726
if ノイズ
   平滑
else
   なにもしない


730 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 07:18:58 ]
 ああ 

731 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 13:38:27 ]
>>726
新しいやり方を考えればいいだけ。

732 名前:デフォルトの名無しさん [2008/09/17(水) 23:20:14 ]
質問です。

Cのプログラム等に記載するための離散時間系のデジタル1次ローパスフィルタを作るためにMATLABでフィルタの係数を求めようとしています。

そのためのプログラムとして、サンプリングインターバル=6ms、フィルタ周波数=10Hzとして、
   omega = 2 * pi * 10
T = 1 / omega
sys = tf(1, [T, 1])
[num, den] = tfdata(sys)
[numd, dend] = c2dm(num, den, 0.006)
として求めると、y[n] = 0.6859 * y[n-1] + (1 - 0.6859) * x[n]という式が求められます。

一方で、連続時間系の1次ローパスフィルタの伝達関数(サンプリングインターバル=6ms、フィルタ周波数=10Hz) G(s) = 1 / (1+Ts) を手計算でz変換を行い、離散系のローパスフィルタの式を求めると、(T = 1 / omega、omega = 2 * pi * 10)
   y[n] = 1 / (1+omega*0.006) * y[n-1] + (1 - 1 / (1+omega*0.006)) * x[n]
となるため、値を代入すると、
   y[n] = 0.7263 * y[n-1] + (1 – 0.7263) * x[n]
となり、先ほどMATLAB関数から求めた式と乖離が出てきてしまいました。

そこで、有識者の方々にお聞きしたいのは
   1.そもそも上記のデジタル1次ローパスフィルタの作り方は間違っているのか?
   2.c2dm コマンドの中身がよくわからないが、これは計算誤差が出るようなものなのか?
   3.離散系に変換したシステムのボード線図を見て特性を確認したいのだが、その場合
     も連続系と同じく
          bode(numd, dend)
     でよいのか?

長文となってしまい、見にくくて申し訳ありませんがどなたか有識者の方がいらっしゃればご教授ください。



733 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 14:54:34 ]
簡単な計算ミスのような気もするのですが、、、

734 名前:デフォルトの名無しさん [2008/09/18(木) 22:11:28 ]
>>733
と言いますと・・・?

735 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 22:13:54 ]
周波数とインターバル(周期)とで混乱していない?
間違いを探したいのなら、
他の数字の組み合わせにしてみて、計算してみるのはどうでしょう?

736 名前:デフォルトの名無しさん [2008/09/18(木) 23:19:11 ]
>>735
すいません、だいぶ他の数字でもやってみたのですが・・・
基本的な結果としては、低周波(0.01Hz、1Hz)では値の乖離はほとんど見られないのですが、高周波になればなるほどどんどん値が離れていくということになっています・・・
なので、アナログからデジタルに変換するときの計算誤差なのではと思った次第なのですが・・・

           MATLAB計算値         手計算値
   0.01Hz      0.9996            0.9996
0.5Hz 0.9813            0.9815
5Hz 0.8282 0.8414
10Hz 0.6859 0.7260

どなたかご教授いただけると助かります



737 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 23:34:44 ]
>>736
サンプリングインターバルも変えてみたらどう?

738 名前:デフォルトの名無しさん [2008/09/19(金) 00:13:17 ]
変えてみた結果は以下の通りになりました。

             MATLAB計算値        手計算値
 0.5Hz  12msec      0.9630          0.9637
2Hz 24msec 0.7396 0.7683
0.01Hz 480msec 0.9703 0.9707
10Hz 480msec 0.0000 0.0032

という感じで、サンプリングインターバルが大きくなる、もしくは周波数が大きくなると乖離がどんどん大きくなるといった傾向が見られます。

そこで離散系に直したときのボード線図を見て、連続系のそれとの特性の違いを見たいのですが、離散系に直したシステム
     [numd, dend] = c2dm(num, den, 0.006)
     bode(numd, dend)
という見方でよろしいのでしょうか?明らかに異なった波形が出てくるので、離散系の場合はボード線図を違う見方で見なければいけないのかなと予想しているのですが。。。
見方がわかりませんので、もしご存知でしたら教えてください。


739 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 00:33:01 ]

ttp://www.ikko.k.hosei.ac.jp/joomla1506/matlab-topmenu-33/17-matlab20070307.html

740 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 00:35:38 ]
matlabをはじめたばかりなんですが質問です。
stem3でつくったグラフを等高線のグラフにそのまま変えたいのですが、
どなたかわかる方いらっしゃいましたらお願いします。

741 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 02:50:24 ]
ステムを輪切りにして上から見て、意味あるの?

742 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 11:49:33 ]
>741
値がどのように分布しているか等高線の方がわかりやすいと思い
変えたいのですが。



743 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 15:11:34 ]
>>742
matlab 等高線
でぐぐれ

744 名前:デフォルトの名無しさん [2008/09/30(火) 15:46:00 ]
GUIのプログラムについての質問です
ファイルguimain.m内で

handles.a=1;
guidata(hObject, handles);

とhandles.aを設定したとき
別のファイルgui2.m内で
handles.aを編集する方法はあるのでしょうか

function gui2(hObject,handles)
handles.a=2;
guidata(hObject, handles);

ではできませんよね?

745 名前:デフォルトの名無しさん [2008/09/30(火) 16:32:46 ]
効率はわかりませんが

function out = gui2(handles)
handles.a=2;
out = handles;

として、呼び出し側でguidata(hObject, handles); することで解決しました。

746 名前:t [2008/10/07(火) 19:46:19 ]
ベルヌーイの螺旋を描ける方いらっしゃいませんか?
困っています。

747 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:23:01 ]
描けるよ

748 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 10:33:41 ]
>>745
構造体使う必要がないならglobal宣言すれば簡単かと

749 名前:デフォルトの名無しさん [2008/10/19(日) 22:46:09 ]
z = f(x, y) を、3次元プロットしたいのですが、
どうやったらよいのでしょうか?

試しに

----------------------
z = [
0 0.1 0.3 0.5 0.3 0;
0 0.3 0.5 0.3 0.3 0;
0 0.5 1.0 0.7 0.5 0;
0 0.3 0.5 0.3 0.3 0;
0 0.1 0.3 0.5 0.3 0
];
[x, y] = size(z);
surfc(x, y, z)
----------------------

としたのですが、うまくいきませんでした。
おそらく行列のプロットを理解していない
と思うのですが・・・。
非常に低レベルな質問で申し訳ありませんが、
よろしくお願いします。


750 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 23:52:00 ]
mesh(z)でどうだ

751 名前:749 [2008/10/20(月) 00:01:45 ]
>>750

早速のご回答、ありがとうございます!
無事、3D plot をすることができました。
ありがとうございます!

752 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 17:54:34 ]
MATLABで式の簡単にする変形を一ステップずつやって
どうやって、変形して最終の形にするのか
見る方法ありませすか?



753 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 23:45:04 ]
意味がわからない。
mathematica?

754 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 23:47:52 ]
シンプリファイとかやるときの途中の式がしりたい。
シンボリックマスツールズの

755 名前:いかわ [2008/10/24(金) 15:35:48 ]
'"2008-09-23 02:30:00.1"' というフォーマットで書かれたストリングのセルから時間データを抽出するよいアイディアをどなたかご存知でないでしょうか?

もしも、''がなく、"2008-09-23 02:30:00.1" というフォーマットならば、sscanf(%d-%d-%d %d:%d:%d); によって時間データを抽出できるのですが。。

756 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 20:06:56 ]
日付の区切りがスラッシュにかわったりしただけでも
どうすればいいかわからなくなるのかなこういう人は・・。


757 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 04:01:54 ]
だれか Matlab compiler で matllab スクリプトコンパイルして、
C で使ったことある人いない?
ttp://www.mathworks.com/access/helpdesk/help/toolbox/compiler/index.html?/access/helpdesk/help/toolbox/compiler/f2-972343.html
これの通りやってみて、C をコンパイルできるようにまでは持って
いったんだけど、実行すると
libmatrixInitialization: unhandled exception
と出る。なにが足りないんでしょうかね?

758 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 05:49:28 ]


759 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 10:11:57 ]
>>757
回答にはなってないかもしれんけど、
おいらは、加えてBuilder for .NETを使ってMファイルを.NETコンポーネント化
してから、.NET系言語から、そのコンポーネント呼び出して使ってるよ。

760 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 15:42:45 ]
A=zeros(100000,100000);
だけでメモリ不足になります

余分な変数消去や仮想メモリ等をいじってみましたが効果はありませんでした
これを解消するには結局メモリ増設しかないのでしょうか?

761 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 16:38:49 ]
>>760
メモリ増設しても無理じゃね?
100000*100000って、数値だけで10Gになるからアクセスすることさえ厄介になってくると思う。
メモリ量的には更に数倍になるわけで、オンメモリで処理するのはどうせ無理だし。

762 名前:760 mailto:sage [2008/10/27(月) 18:09:13 ]
>>761さん

ご回答ありがとうございます
低レベルな質問ですみませんでした

このような行列はMATLABではそもそも扱えない(普通は扱わない)と考えてよいのでしょうか?
株価のシミュレーションでforを使うより行列を使った方が早いため
あのような行列が処理できると助かったのですが



763 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 01:30:51 ]
「普通のPC」では扱えない というのが正解かと。
10Gのメモリっていうといわゆるスーパーコンピューターの領域

764 名前:デフォルトの名無しさん [2008/10/30(木) 04:26:55 ]
たとえば*を増やしていって、
処理の進行状況を表示したいのですが、
改行を抑制する方法はありませんか?


765 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 21:20:25 ]
質問です
複素数の実部虚部それぞれ七桁で表示させたいのですが
zに複素数が入っていて
sprintf('%7f',z)
とすると実部だけが七桁で表示されてしまいます
どうしたらよいでしょうか?

766 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 22:41:17 ]
関数realとimagを使用して実部と虚部を取り出せばいいじゃない

767 名前:デフォルトの名無しさん [2008/10/30(木) 23:07:49 ]
サポート受けられないということは、ここの住人はコピーや労か

768 名前:デフォルトの名無しさん [2008/10/31(金) 00:06:48 ]
>>764
なんで今どうやってるのか書かないの?

769 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 14:35:01 ]
>>766
ありがとうございます
sprintf('%7f %+7f',real(z) imag(z)i)
のような感じでしょうか?
今試せる環境ではないのでiとかがどうなるのかよく分かりませんが・・・・・

770 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 19:10:46 ]
教えてください。
1辺の長さが1の正三角形を上下に並べて出来る平行四辺形をプロットして、
それに含まれるかどうかの判定をしたいのですが、判定条件はどうしたらいいでしょうか。
N個の点を行列で与えて、図形に入っていれば赤、入っていなければ黒という風に
表示させたいのです。
よろしくお願いします

771 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 19:25:24 ]
>>769
+の位置が不適切だけどそれを直せばイケル

772 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 17:39:35 ]
>>771
すいませんまだ試せていないんですがこうすると実数値の場合に
3+0i
みたいな表示になっちゃいませんかね?
もっと簡単にできる方法ないですかね



773 名前:デフォルトの名無しさん [2008/11/07(金) 14:26:53 ]
質問があります


例えばデータシートが1000枚あって、各データシートからX,Y,Zの値を取り出して、
座標(X,Y,Z)をplot3でプロットします。これがこのシートの3次元での点(位置)になりますよね。
それを1000枚分やると3次元空間に点が1000点でき、動きの軌道のように繋がって表示されます(そういうデータなので)。

問題は次なのですが、数十点ほど動きの軌道からはみ出してプロットされた点(多分計測時のノイズ)が
存在します。なのでプロット点全体を平滑化したいのですが、三次元プロットした点をフィルタするのは
可能なんでしょうか。

よろしくお願いします

774 名前:デフォルトの名無しさん [2008/11/07(金) 21:04:04 ]
>>773
成分ごとにやれば?


775 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 07:04:44 ]
結局の所作業としてはプロットした点をフィルタせずに
フィルタしてからプロットするんでしょ?

776 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 09:03:51 ]
Matlab C ライブラリの関数
mlfMatrixPrint とか
mlfLength とかってどこに行ったの?
昔は matlab.h ってのがあったみたいなんだが、
R2007b だけど、ないんだよね。
matlab 内のビルトイン関数を C から直接呼び出せなくなったの?

777 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 14:40:02 ]
私は>>675じゃないんですけど
>>675の解決策ってありますか?

778 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 07:24:17 ]
スレを675以降もネットリと見てみよう

779 名前:デフォルトの名無しさん [2008/11/10(月) 20:04:54 ]
こんばんは。最近MATLABで動画像処理を始めたものですが、
250*350でフレーム数200のAVIの動画をRGBで格納するために
T=zeros(250,350,3,200)
としてみたのですが、メモリが足りませんと出てしまいました。
解決策がわかりません

ちなみにPCはXP Core(TM)2 Duo CPU メモリ2Gを使っています。

よろしくお願いします

780 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 22:36:17 ]
[A;B]という行列(n行m列)から [A;A;B;B]という行列(n^2行m列)をfor文を
使わずに 作りたいのですが可能でしょうか。
基礎的な質問でしょうがよろしくお願いします。


781 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 23:00:26 ]
>>780
[A;A;B;B]だったらn*2行m列だと思うんですが。

782 名前:780 mailto:sage [2008/11/10(月) 23:08:49 ]
例が分かりづらくて済みません。別の例ですが[A;B;C]という行列だったら
[A;A;A;B;B;B;C;C;C]という行列を作りたいのです。




783 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 23:58:44 ]
>>779
メモリが足りないのものはしょうがないのである。
本当に全部格納しなければいけないのか考えてみるのである

784 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 00:01:09 ]
>>782
つまり *3 でいいんだね?
X = [A;B;C] からA, B, C の分解は終わっているものとする。
Y = [repmat(A, 3, 1); repmat(B, 3, 1); repmat(C, 3, 1)]

785 名前:780 mailto:sage [2008/11/11(火) 00:57:46 ]
>>784
ありがとうございます。確かに直接記述すればそうなるんですが、
行列の行数が任意の数nであってもそのような行列が作れるか
、つまり各行ベクトルをn個並べてn^2行の行列を作れるかということが
分からないんです。

786 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 06:44:37 ]
matlab Mex で
X(1,:)
ってどうやんの?

787 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 10:22:08 ]
>>785
repmat(x, 1, length(x))

788 名前:780 mailto:sage [2008/11/11(火) 13:01:35 ]
>>787
おかげで解決しましたーありがとうございます。

789 名前:デフォルトの名無しさん [2008/11/11(火) 18:11:41 ]
[id,check] = textread('01.txt','%s%s');
と読み込んだ後
id  とすると中身があるのは確認できるのですが
fprintf('filename','%s',id);
というふうにして書き込もうとするとFunction is not defined for 'cell' inputs.
というエラーがでてidをtxtに書き込むことができません。

textreadで読み込んだidをtxtに書き込むにはどのようにすればよいでしょうか?
よろしくお願いします。

790 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 21:31:48 ]
>>789
www.excite.co.jp/world/

791 名前:789 [2008/11/12(水) 16:00:23 ]
>>789エラーの内容は分かったんですけれど
セルをtxtに書き込めるようにする方法が調べてみてもよく分かりません
もしよかったら教えてもらえませんか?
よろしくお願いします。

792 名前:シン [2008/11/14(金) 12:57:46 ]
MATRABのプログラムで、x1=0、x2=1.2 x3=2.1 x4=3.5 y1=0.3 y2=1.2 y3=2.4 y4=2.7 の4点のラグランジュ補間をとりグラフを出力したいのですが教えてください
。できればfor文をつかった形式でお願いします。あと範囲は0<x<10です。




793 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 18:27:37 ]
レベル低過ぎ
説明書読め

794 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 21:16:11 ]
MATLABわかる人
pc11.2ch.net/test/read.cgi/tech/1226576323/l50
スレからのマルチポスト

795 名前:デフォルトの名無しさん [2008/11/15(土) 17:26:18 ]
MATLABのプログラムで、xy平面上の点P(i)=(x(i),y(i)), i=1,2,3,4,5について
5個の点P(i)を適当に設定し、これらの点を順に線分で結んでできる多角形の図を作れ。ただし各点P(i)は*印で示すこと
最後の点P(5)を最初の点P(1)に結んでみよ。
のプログラムを作りたいんですけど、誰かわかる方教えてください。

796 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 12:12:10 ]
>>792
plot([1:10], lagrange(x, y));

>>795
line(x, y, '*');

宿題は宿題スレに頼めよ

797 名前:デフォルトの名無しさん [2008/11/16(日) 13:49:26 ]
宿題スレのURL教えて!

798 名前:770 mailto:sage [2008/11/17(月) 07:40:28 ]
ショボーン(´・ω・`)

799 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 11:33:58 ]
>>770
まはやMATLABですらねぇな

三角形の中に点があるかどうかは時計回り(または反時計回り)に
各辺を回ったときに常に辺から左側(または右側)に点があるかどうかでわかる

N角形〜閉曲線の場合でも一緒

800 名前:デフォルトの名無しさん [2008/11/18(火) 19:50:56 ]
MATLABで2の5乗根の値を出したいのですが何かいい関数がありませんか?
よろしくお願いします


801 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 22:09:27 ]
2^(1/5)

802 名前:800 mailto:sage [2008/11/19(水) 15:32:16 ]
ありがとうございます。



803 名前:デフォルトの名無しさん [2008/11/20(木) 14:09:32 ]
質問です。
MATLAB5.0でフォルダ内のファイル全てに同じ処理を施すようにしたいのですが、
どのようにしたらいいでしょうか?

サンプルプログラムを書いていただけたらうれしいです。

804 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 14:58:26 ]
自分でかけよ

805 名前:デフォルトの名無しさん [2008/11/20(木) 17:45:43 ]
こんばんは。
MATLABで近似曲線を描きたい場合、データがXとYの2軸のグラフでプロットされてるなら、
近似曲線用のコマンドがあるのでできます。しかし今回はXYZの三軸の要素があるデータをplot3コマンドで
グラフ化したものに近似曲線をひきたいと考えていて、方法をずっと考えていたのですが全く思い浮かびません。

どなたかアイデアがありませんか?

806 名前: ◆DcKrXqTCB2 mailto:sage [2008/11/22(土) 04:46:22 ]
>>803
name=dir
-------
gnuplotを、Windows 2000のOctave Ver3.1.50 Winows で使いたい、どうすれば?

807 名前:デフォルトの名無しさん [2008/11/22(土) 13:26:48 ]
工学系の学生です。質問させてください。
常微分方程式の境界値問題用のbvp4cソルバや、偏微分方程式のpdeソルバは様々な微分方程式で汎用的に使えるものなのでしょうか。
実験系の研究室にも関わらず、実験結果を説明するための数値計算をやらなくてはいけないことになってしまったのですが、
自分でコードを作る技術がなく、既存のソルバで手早く計算できないものかと思っています。
情けない質問ですがよろしくお願いします。

これらのソルバを使う時に収束性や初期値の設定等にコツが必要でしたら、そのコツについても教えていただけませんしょうか。
「この本を読め!」でもうれしいです。
勉強用にこれ↓を買おうと思ってます。もっと良い本ってありますかね。
ttp://www.amazon.co.jp/MATLAB%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-G-J-Borse/dp/427402380X

808 名前: [2008/11/23(日) 09:07:11 ]
上の本、高いですね−。

質問です。
plotで線をつなげずにヒストグラムのように描くにはどうすればいいですか?
(データは600行ほどのテキストファイルで、それぞれの行に数値が入っています。
それをdlmreadで読み込んでplotしたら横の軸は600までで思い通りなのですが
それぞれのデータ点がつながってplotされてしまいました)

809 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 12:19:59 ]
hist()があるよ

810 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 12:21:35 ]
アッコにおまかせでやっていたけど、
古物商の免許を取って古本屋で、売れ残りかつ専門的な本を安値で買って
アマゾンで売るという商売で月にだいたい10万円、多いときで30万円
の商売している人がいるらしいよ。
>>807の紹介した本もそういう人が提供している可能性大だね。
ではではノシ

811 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 16:42:29 ]
アッコにおまかせで微分方程式 まで読んだ。

812 名前: [2008/11/24(月) 19:25:16 ]
809さん、hist()をうまく使えばいいんですね!ありがとうございます。



813 名前:age [2008/11/26(水) 00:56:33 ]
MATLAB R2008b studentバージョン
を買いました。
mccを実行しようとしたところ、mccは用意されてなかったみたいです。
studentバージョンだからですか?

814 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 14:04:59 ]
matlabの正式バージョンってマジでいくらするんですか?

815 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 17:04:20 ]
>>814
MATLABだけ?それとも、Simulinkも?
まぁ、国産の軽〜高級車くらい見ておけばいいんでない?

816 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 22:52:25 ]
随分幅のある例を出してきたな。10倍以上あるじゃないか。

817 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:50:28 ]
ライセンスは細かく分かれているから、組み合わせでかなり変わるしな。

818 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 13:38:54 ]
今日、MATLAB EXPOやってるな
聞いてくれば?

819 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 22:31:49 ]
ある計算で、メモリ不足に陥っています。
512MB×4のメモリから、2G×2のメモリに増設しました。
zerosでどれだけのサイズを確保できるかを試したんですが、増設しても変わりありませんでした・・・。
10000×10000のゼロ行列でメモリ不足に陥ります。
サイズ増やせると期待したのですが、こんなもんなんでしょうか。
問題の計算のほうも改善できませんでした。どこかおかしいところがあればアドバイスお願いします。
バージョンはR2006b、OSは32bitXPです。

820 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 23:17:47 ]
10000x10000x8bytes=80,000,000
100Mそこそこだから確保は出来るはずだが、他にも巨大な変数があったら不明
メモリが断片化してる可能性もあるのでpackコマンドを使ってみる

それでも足りなければ↓に従い64bitOSを使うなどの対処を。
www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1628

821 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 23:47:44 ]
覆面算をエクセルのマクロで解きたいのですが教えてください
B、C、Dは0を除外

    C A B
 +)  B A C
----------------------
  D A B A


822 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 00:31:47 ]
>>820
800M だべ?
>>819
他のソフトも入れて (matlab 自体もいれて)、
32bit CPU && Windows なら 2GB の壁があるから、
そんなもんじゃねーがの。



823 名前:820 mailto:sage [2008/12/06(土) 14:35:28 ]
>>882
おおう
単純な計算ミスorz
仮想メモリもふやして一応matlabが2G使えるはずだけど800Mなら他の変数しだいか。
やっぱ64bitでやるとかコマンドラインモードでやるとかが必要かもねえ

824 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:21:17 ]
>>820>>823
有難う御座います。
clearやって不要な変数などは一切消去して試した結果です。
因みにタスクマネージャーでmatlabのメモリ使用量みたら700M程度でした。
ウィンドウとか最小化すると200Mまで減ったりしますが、こんなもんでしょうか。。

やっぱり64ビット環境かぁ。。。
その場合、ゼロ行列ではどれだけのサイズが確保可能になるんでしょうか?

825 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 20:36:07 ]
変数名を文字列に変換することって出来ないのでしょうか?
例えば、行列Aのプロット結果のtitleに「plot of A」とか書きたいんだけど、数が多くて手入力では限界が・・・

826 名前:デフォルトの名無しさん [2008/12/09(火) 00:28:04 ]
その変数をシングルクォートではさめば文字列になるよ。

827 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 03:06:40 ]
>>825
文字列から変数っつーか、式に eval で変換する、ほうが楽かも

828 名前:825 mailto:sage [2008/12/09(火) 21:52:58 ]
>>826>>827
アドバイスありがとうございます。しかし私の説明が不十分でした。

私がやりたいことは、例えば、
func = [1 2 3]
plot(func)
で[1 2 3]がプロットされますが、そのタイトルに'func'を含めたいのです。

title(func)
ではfuncの中身、つまり[1 2 3]がタイトルに表示されてしまいます。
title('func')
だと、funcとは表示されますが、変数名自信(funcの部分)が変わる場合には自動で対応できません。

そこで、別変数(例えばfunc_name)に変数名を格納できれば
title(func_name)
とすることで、自動でタイトルを付けることが出来ると思ったのです。
そういう関数とかないかなと探しているのですが、なんだかなさそうな気配です・・・

829 名前:デフォルトの名無しさん [2008/12/09(火) 22:41:47 ]
title('func')だと自動対応できない、というが
その例で変数名が変わったとき
plot(func)は対応できるの?

君自身、自分が何をやりたいかが
分かってないのではないか。

830 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:42:36 ]
>>828
だから、変数名を格納して、eval で展開すれば、というとるやんけ

831 名前:デフォルトの名無しさん [2008/12/10(水) 03:25:58 ]
eval使わなくてもMATLABには>825の目的の機能があるよ。
825が何やりたいかちゃんと説明できてないから予想だけど。

832 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 06:55:04 ]
>>831
その予想を書けよ。言われる前に書けよ。



833 名前:デフォルトの名無しさん [2008/12/10(水) 23:04:31 ]
まともに質問できない人には質問になってないよって
教えてあげるのが親切ってもんだよ。

834 名前:825 mailto:sage [2008/12/11(木) 00:09:46 ]
不評を買ってしまったようで・・・
実はプログラミング自体にあまり慣れていないもので、上手く伝えることが出来ないみたいです。
アドバイスを元にもうちょっと試行錯誤してみようと思います。

>>829
そこは泥臭い手法を採ってまして・・・
あまりに下手なので説明は遠慮させていただきます。
泥臭くて良いのなら引数で渡せばいいじゃんとか言われるとそれまでなのですが、
機能として有りそうにも拘わらず見つけることが出来なかったため質問した次第です。

>>830
ありがとうございます。調べて試してみます。

>>831
説明が上手くなくて申し訳ないです。

835 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 01:48:56 ]
>>834
>機能として有りそうにも拘わらず見つけることが出来なかったため質問した次第です。
そんな機能必要ないから存在しないだけだから

836 名前:デフォルトの名無しさん [2008/12/11(木) 01:57:53 ]
プログラムに慣れてないとかいう問題ではたぶんなくて
自分がやってることとやりたいことを全部書いてないだけだと思うよ。

>825
> 変数名を文字列に変換する
をしてくれるvarnameという関数が仮に存在したとしても
あなたの質問の例では意味がない。

func = [1 2 3];
plot(func)
title('func')



func = [1 2 3];
plot(func)
title(varname(func))

と書けても「手入力」の節約になってない。
plotとtitleの部分を関数にしたいということなら分かるけど。

help inputname

837 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:15:16 ]
そう。だから文字列配列を作って eval で展開するのさ。
funcnames = { 'func1', 'func2', 'func3' };
for i = 1:length(funcs)
 eval(sprintf('plot(%s)', funcnames{i]));
 title(funcnames{i]);
end

>>831
eval 使わないとなるとどうやるんだ?参考までに教えてくれ。

838 名前:デフォルトの名無しさん [2008/12/11(木) 07:16:07 ]
なんで>>837はえらそうなのか。

839 名前:デフォルトの名無しさん [2008/12/11(木) 17:53:58 ]
> eval 使わないとなるとどうやるんだ?

>>836に書いてあるんだけど。

evalもいいけどデバッグしにくくなるし
よほどの理由がある時以外は使わない方がいいよ。

840 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 02:41:03 ]
>>839
書いてないよ
>varnameという関数が仮に存在したとして

841 名前:デフォルトの名無しさん [2008/12/12(金) 02:59:31 ]
> help inputname

842 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 07:44:47 ]
>>841
は?inputname は全然ちゃうやろ。help みたんかいな



843 名前:デフォルトの名無しさん [2008/12/12(金) 07:57:51 ]
頭悪いのにえらそうな人ってやっかいだね。
>>828

func1 = [1 2 3];
func2 = [4 5 6];

plot(func1)
title('func1')

plot(func2)
title('func2')

とすると数が多くなったときにtitleを
いちいち書くのが手間だっていうんだから

plotfunc(func1)
plotfunc(func2)

function plotfunc(f)
plot(f)
title(inputname(1))
end

でしょ。

844 名前:デフォルトの名無しさん [2008/12/12(金) 08:01:52 ]
あ、テストせずに書いたけど
plotfuncの中にfigure追加しないとだめですね。
もとの質問者がsubplotとか使ってるなら
そのへんは適当に。

845 名前:デフォルトの名無しさん [2008/12/15(月) 18:02:33 ]
m個のデータから正規方程式を使い
A=Cexp(Bcosφ)を知りたい時どうすればいいですか?
Bは定数で、未知のCとφが知りたいんです。
未知定数が2つで積っていうのがよくわかりません

846 名前:デフォルトの名無しさん [2008/12/15(月) 18:20:25 ]
韓国に攻撃されてるぞwwww7
jfk.2ch.net/test/read.cgi/news4vip/1229319433/

世界フィギュア選手権で浅田真央が韓国を破り金賞に輝く

韓国人が腹いせに2ちゃんねるを攻撃

vipper今夜19:00 反撃凸 ←いまここ★

目標
www.dcinside.com/

Dcinside(ディーシーインサイド)は、韓国の電子掲示板サイトである。
デジタルカメラの情報を提供する専門サイトとして有名になりつつ、だんだん人が集まり韓国最大のコミュニティーサイトとなった。 韓国の2ちゃんねるともいえるサイト。
2004年に2ちゃんねるのサーバをDoS攻撃したことで有名。


847 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 18:08:04 ]
m質点の串団子モデルの剛性マトリクスをfor文を使って次のように書いたのですが、
for文を使わないで書く方法はありますでしょうか?
for文をなるだけ使わないのがMATLABっと以前のレスで見たのですが、
何分プログラミング自体初めてでして。。


row_m = input('Enter m = ');

k0 = input('Enter 0 or 1 =');
switch k0
case 0
k1 = input('Enter k = ');
kk = k1*ones(1,row_m);
otherwise
kk = zeros(1,row_m)+input('Enter kmatrix = ');
end

K = kk(:,1);
for N = 2:row_m
K0 = [kk(:,N),-kk(:,N);-kk(:,N),kk(:,N)];
K1 = [K,zeros(N-1,1);zeros(1,N-1),zeros(1)];
K2 = [zeros(N-2),zeros(N-2,2);zeros(2,N-2),K0];
K = K1+K2;
end

ここはこうしたほうが良いなどなんでも結構ですのでご助言を頂けると幸いです。

848 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:06:06 ]
for N = 2:row_mなくして
Nの代わりにまんま2:row_mを使え

849 名前:デフォルトの名無しさん [2008/12/19(金) 03:19:52 ]
すいませんがよろしくお願いします。
waveファイルをインポートするにはどうすればいいのでしょうか?
helpをみてもできません。
[y,Fs,Bits] = wavread('onsei1.wav');
と入力したら、
??? エラー ==> wavread at 67
ファイルを開けません
とでます。
誰か教えてください!

850 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 04:42:52 ]
plotで図示したグラフとcontourで図示したグラフを重ねて表示する際、
X軸Y軸が逆になってしまいます。
contour(y,x,z)とすれば軸はあうのですが、いまいち納得いきません。
どうしてこうなるのでしょうか?

851 名前:デフォルトの名無しさん [2008/12/20(土) 07:17:39 ]
画像をimresizeでbicubicで補間しながら拡大・縮小したときの動作確認がしたいのですが
どうしたらいいでしょうか?

もしくはbicubicで補間しつつ拡大縮小を少数精度の倍率を与えたときに正確に動作が
保証できるプログラムを組んだことのある方いらっしゃいませんか?
ソースをアップして欲しいのです・・・。修士論文が間に合わない・・。

852 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 12:44:18 ]
Y = find([0 1 0 0 1])
Y
 2 5
の逆ってどうやるんでしたっけ?



853 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 12:49:22 ]
>>849
ファイルがそこにないんじゃない?

>>850
meshgrid を使ったと仮定して、
meshgrid の使い方間違ったんじゃない?

854 名前:デフォルトの名無しさん [2008/12/24(水) 00:27:15 ]
>>852

X(Y)=1

855 名前:デフォルトの名無しさん [2008/12/25(木) 13:57:23 ]
プログラム初心者です。
MATLABを使えるようになりたいんですが
基本的な使い方とか解説してあるいいサイトとかあったら教えていただけないでしょうか。

856 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 15:36:00 ]
サイトではないですが、「MATLAB+Scilabプログラミング事典」という書籍にはお世話になりました。MATLABに似たscilabについても記載されていますが。
後はMATLABのhelpでしょうか。

857 名前:855 mailto:sage [2008/12/26(金) 11:56:00 ]
>>856
ありがとうございます。
探してみようと思います。

858 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 22:52:26 ]
Student Editionって以前は自分名義のクレジットカード+HPへの登録+学生証のコピーの郵送が必要って
Q&Aに書いてあったと思うのですが、今は生協で買えるんですねー
その場合は上記の郵送とか面倒な作業は必要ないんでしょうか。

859 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:57:12 ]
>>858
生協で学生証提示でオケ

860 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:36:50 ]
>>859
返事遅くなってすいません。
煩雑な手続きは無くなったんですね。ちょっと興味有ったので買ってみることにします。
ありがとうございました。

861 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:42:52 ]
scilabってコマンドはマトラボとおなじなんでしょうか?
家でもやろうかと思ってるんですが

862 名前:デフォルトの名無しさん [2009/01/06(火) 00:54:09 ]
言い直すと学校でマトラボを使っているんですが
家でもやりたいのでscilabをだいようできるでしょうか?



863 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 01:35:49 ]
www.ipc.yamanashi.ac.jp/bul/final01/ohki/matlab.html
>Scilab の文法は MATLAB と良く似てはいるが, 細部には違いがある.

>Octave は, 基本的な言語仕様の点で MATLAB 互換となるように設計されており,
>Octave で作成したプログラムの多くは修正なしでそのまま MATLAB で実行可能である
>(MATLABの方が機能が豊富なので,逆は真でない).

864 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 03:08:02 ]
>>863
わかりやすくありがとうございます

865 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 13:51:44 ]
freematは?

866 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 15:34:35 ]
octaveを語ろう
pc11.2ch.net/test/read.cgi/unix/1086016412/

Scilabを触ってみるスレ
science6.2ch.net/test/read.cgi/kikai/1068735555/

SCILAB&SCICOSについて教えてください
science6.2ch.net/test/read.cgi/sim/980480122/

どれも過疎化しているが…
freematスレは見当たらなかった。

867 名前:MATRAB_Mathematica [2009/01/08(木) 21:47:19 ]
下記をMathematica上で使うにはどうすればいいですか?
Seq = {-0.2266091476053614,0;[0.2155407618197651,-1.2670686037583443],0;
[-4.2551584226048398,0.5047757263881194],2;
[0.2331599353469357,0.0447459687134724],-2;
[6.6244572505007815,-18.389000853969371],4;
[-0.0567684937266291,0.1443950619899142],-4;-5.5119344180654508,5};
ScaleS = -0.5985483742581210;
ScaleD = -1.6707087396895259;
Family = 'Symlet';



868 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 16:23:57 ]
matlabでH.264動画を表示させるにはどうしたらよいのでしょうか。
「mmreader」で読み込んでも走査線が分かれて表示されます。
インターレース動画は奇数偶数をいじって解除・表示できたのですが、
H.264やmp4コーデックでエンコードされた動画は上1/3が黒く表示され、
走査線がバラバラに表示されます。
H.264動画の走査線をどのように分解したらよいのか詳しくわかりません。
詳しい方がいらっしゃいましたらよろしくお願いします。

869 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 16:05:57 ]
プログラミング初心者です。画像処理の質問です。

ある画像から2値化を行い,1つの物体だけを取り出そうと考えています。
bwlabelを使ってラベル画像を作った後に,ラベル付けされた各物体の特徴量として面積と円形度を求め,ある範囲に入っている物体1つを取り出したいのですが,よくわかりません。

調べたところbwselectがあったのですが,これは画像をクリックする操作があるため出来れば避けたいと思っています。

わかる方がいましたらアドバイスを頂けないでしょうか?
よろしくお願いします

870 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 18:35:45 ]
MATLABを使っていて分からないことがあったので、画像処理について質問させてください。

0〜1の間の乱数を128×128の行列に入れて、これをXと置いた後、
imshow(X,128)で濃淡レベル128のグレースケールで表示します。
これで、白〜黒の画像が表示されるのですが、これを白〜赤のように色をつけて出力したいです。
colormap(Red);imshow(X,128)
でできるかと思ったのですが、上手くいきません。どうすればよいか教えていただけないでしょうか。

871 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 10:49:11 ]
>>870
MATLABよく知らんから逆に聞くけど、colormap(Red)するとどう出力されるの?
もしかして、黒-灰-白が黒-赤-白になるとか? colormapの仕様をよく調べてみるといいんでない?

872 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 13:32:39 ]
Redがサポートされてないってオチだろ
Hotとかにしてみ



873 名前:デフォルトの名無しさん [2009/01/27(火) 21:20:12 ]
2次元画像処理で、ハイパスフィルタを書いたのですが
このコードで正しいのか自信がもてません。
何方か、分かる方がいらっしゃいましたらご指摘願います

function I=highpass2(I,THV)
% ハイパスフィルタ
function I=hp2(I,THV)
I=double(I);
I2=fft2(I);
I3=abs(I2);
[m,n]=size(I);
for k=1:m;
for l=1:n;
if( I3(k,l)<THV )
I2(k,l)=0;
end
end
end
I = uint8(real(ifft2(I2)));
end
I = hp2(I,THV*1000);
end


874 名前:873 [2009/02/03(火) 20:31:01 ]
スレ汚し失礼いたしました。
どうも上のコードで良かったみたいですので、高速化ver貼り付けておきます。

function I=highpass2(I,THV)
% ハイパスフィルタ
% THVは0〜255の間でお願いします(0〜10推奨)
function I=hp2(I,THV)
I=double(I);
I2=fft2(I);
[m,n]=size(I);
I2=I2.*double( im2bw( abs(I2)./(m*n*255), min(THV./255,1.0) ) );
I = uint8(real(ifft2(I2)));
end
[m,n,o]=size(I);
for i=1:o
I(:,:,1) = hp2(I(:,:,1),THV);
end
end


875 名前:デフォルトの名無しさん [2009/02/05(木) 12:28:10 ]
Linux用Matlabについての質問です。
32 bit版のmatlabがあるのですが、64bitカーネルのLinuxで動きますか?


876 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:13:25 ]
つかってるLinuxによるとしかいえない。

877 名前:デフォルトの名無しさん [2009/02/10(火) 07:48:30 ]
plotでデータ数5000の系列を、同じグラフに5本書きます。
それぞれの系列をカラーでわけたくない場合はマーカで区別すると思うのですが、
データ数が5000だとどのマーカも潰れて見えません。

データ数100個飛ばしでマーカをつけるなど、そのような飛び飛びでマーカをつける方法はありますか?

878 名前:デフォルトの名無しさん [2009/02/10(火) 11:47:31 ]
カラーバーにおいて、特定の値の色を指定する方法を
教えて頂けないでしょうか。
今、カラーバーの範囲を[a, b] (a < 0 < b) にして、
0 の色を白に指定したいのですが、苦労しています。
よろしくお願いします。

879 名前:デフォルトの名無しさん [2009/02/14(土) 07:56:25 ]
www.osaka-kyoiku.ac.jp/~ashino/topics/wavehist.html?

このページの真ん中当たりにコッホ曲線のウェーブレット変換が書かれてあるのですが、
この上側の図に書かれてあるコッホ曲線はよく見かける三角形をたくさん合わせたものと全く違いますが、何を表しているのでしょうか?
下の図は3次元的な図になっていますが、それぞれ横、縦、手前の軸は何を表しているのでしょうか?

880 名前:デフォルトの名無しさん [2009/02/22(日) 20:44:57 ]
eval関数について質問です.
変数を文字列化してテキストボックスとしてfigureに挿入しようと
思っているのですが,以下のようにやってもうまくいきません.

eval(['text(20,70,',num2str(k),',''FontSize'',16,''FontName'',''Century'');']);

基本的に([])内の'と,の使い方についてよく理解していません.
'〜',〜,'〜',〜,… のような順番で結合したい要素を配置して,
''内に更に'〜'のような表現がある場合''〜''に書き換える決まり?が
あるんじゃないかと勝手に解釈して上記のコマンド書きました.

非常にややこしい文になりましたが,そこらへんの事も含めて
ご教授いただきたいです.よろしくお願いします.

881 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:13:59 ]
>>880
俺の脳内MATLABで実行してみたら、こんな感じだと俺の妄想どおりになった
eval(['text(20,70,''',num2str(k),''',''FontSize'',16,''FontName'',''Century'');']);

>>''内に更に'〜'のような表現がある場合''〜''に書き換える
そうそうそんな感じ
dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/ref/?/matlab/support/manual/r13/toolbox/matlab/ref/eval.shtml

882 名前:880 [2009/02/24(火) 00:16:41 ]
>>881
仰るとおりのコマンドでうまくいきました.
リンク先も一応見た事あるのですが,evalで長いコマンド括る方法が無かった物で…
おそらくevalで一括するよりも,先に文字列作るなりしたほうが良いのかも知れませんね.
ありがとうございました.



883 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 13:58:40 ]
plot([0.1:0.1:0.9 0.91:0.01:0.99], [0.1:0.1:0.9 0.91:0.01:0.99].^2)
こんな意味のプロットを
plot(1:18, [0.1:0.1:0.9 0.91:0.01:0.99].^2)
のような表示でプロットしたい(x 軸の点ごとの間隔を等間隔にしたい)のですが、
上のようにプロットすると、x 軸のラベルがもちろん、1,2,3,4 のようになってしまいます。
このラベルは [0.1:0.1:0.9 0.91:0.01:0.99] のままにしたいのですが、
どうようにすれば実現できるでしょうか?よろしくお願いします。


884 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:09:55 ]
>>883
plot(1:18, [0.1:0.1:0.9 0.91:0.01:0.99].^2)
でプロットしてからXTickLabelを変更すればいいんじゃない?


885 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:50:40 ]
そんな姑息な真似はいやなんです。

886 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:08:33 ]
そうかい、すまんね。

887 名前:デフォルトの名無しさん [2009/03/06(金) 14:46:30 ]
既出かもしれませんが、
たとえば、(z-0.99)/(z-0.58)みたいな伝達関数があって、
任意のzdをzに代入したい場合、つまり、zd=0.45+0.53jをzにいれるには
どうしたらできるでしょうか?
それとも、そもそもMatLabではできないですか?

888 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:41:31 ]
伝達関数、と限定した言い方をするってことは
こんな↓単なる台数方程式的な話ではないんですよね。
z=0.45+0.53*j
x=(z-0.99)/(z-0.58)

889 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 10:47:17 ]
なんだか分野を書かない質問が多いよね。
信号処理の質問を経済学の人が見てもしょうがないのにさ。
ちなみに filter だったと思う。
signal processing toolbox に一度ひととおり目をとおしておくとよいでしょう。

890 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:58:33 ]
>>888
方法が見つからなかったので、結局、代数方程式を新たに作って解決したのですが、
もし、tfで作った関数に当てはめることができれば、そういった手間を省けると
思って質問しました。

>>889
すいません。分野は機械工学のデジタル信号処理です。離散時間を扱ってます。
あと、
そういったツールボックスがあるのですね。勉強になりました。

891 名前:デフォルトの名無しさん [2009/03/17(火) 22:46:36 ]
どうもすいません。matlabのコードを.Net向けにコンパイルを行ってその結果を受け取っているのですが
function [a,b] = func( c )
の様に引数を2つ以上返すとき、どうすれば2つとも受け取れるのでしょうか?
というより文法的に何か可能は方法があるのでしょうか?


892 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:57:06 ]
>>891
何の言語を使っているのか知らんが、その言語スレで聞いたら?
まぁ、構造体を作ってって処だろうけど。



893 名前:abc [2009/03/18(水) 16:27:20 ]
行列の列ごとに、0で無い値の中での平均を求める方法を教えてください。

894 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:53:24 ]
for i = 1:size(A,2)
mu(i) = mean(A(A(:,i) ~= 0, i));
end
いや、
mu = sum(A, 1) ./ sum(A ~= 0, 1)
こっちのほうがスマートかな

895 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 08:37:26 ]
meanの引数に直接行列をぶち込むのと結果が変わらなくね?

896 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:15:21 ]
mean なら0もカウントしちゃうぜしょ。

897 名前:デフォルトの名無しさん [2009/03/19(木) 22:33:19 ]
figureで軸を指定した関数で表示するにはどうしたらいいでしょうか?
logプロットの様な感じでlog以外の指定した関数で表示したいです。

898 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 06:48:41 ]
基本的な0次、1次のBessel関数でMATLAB組み込みより速いのってありますか?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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