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
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 局所的な最大値って極大値でいいのか? いずれにしても「ランダムな行列」がどういうものであるかと 何を「局所的な最大値」と定義するかが決まらないと 答えられないのでは?