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
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組み込みより速いのってありますか?