1 :
デフォルトの名無しさん :
04/10/09 15:28:44
2get
おおこんなスレが! 僕は大学で音響の研究してます。 このスレにお世話になることあると思うんで、盛り上げていきましょう。
4 :
デフォルトの名無しさん :04/10/09 19:15:13
ほう。こんなスレが。 って、俺はほとんど使ったこと無いけど。 普段は octave 使ってる。
僕も大学で音響の研究してます。 もしかしたら >3 と知り合いかも。 ・・・って、音響やっててMatlab使っているなんてたくさんいるか。
6 :
デフォルトの名無しさん :04/10/10 02:01:11
げっ。俺も音響でMATLABつかっているorz。
>>3 や
>>5 が同じ研究室のヤツだったらやだな
俺はFortran90使っているけど、行列の扱いやすさだとやっぱりMATLABの方が上なんだろうか? かくいう俺も音響関係の研究室に所属。信号処理関連のライブラリは魅力的だなあ。
以前音響の研究室でMatlab使ってた。 その研究室の先生が教授を辞めてしまった。
>>7 FORTRANと比べたらそりゃそうだろう。
けどC/C++/Javaなどと比べたら(ry
音響以外にもデータの解析にMATLABつかってる研究室あったな。
MATLABでオブジェクト指向やってみようと 思ったらPerl程度のものしかできなくて萎えた
MATLABの嫌なところは ソースをぱっと見ただけで それが関数であるのか、配列であるのか、ベクトルであるのか 解らないところだね。 C/C++/Javaならすぐにわかるのに
>>5 いくら音響やっててMATLAB使ってるのがたくさんいるからといって
MATLABだけで音響ソフトを作るのはハズカシイ
そうそう、しょせんMatlabはプロトタイピング用です。 思いついたアイディアをすぐに形にできて、実験できるのがいいところ。 その後に自分で書くなり外部のプログラマを雇うなりしてC/C++で最適化します。
プロトタイピング用というより解析用。 今まで音響の研究室見てきたけれど 雇ってもろくなもんができない罠。 本格的にやろうとすればするほど金がかかるからね。 100〜500万じゃ雇っても無駄。 プログラマという職についてみればあのソフトには何100万じゃ足りないということがわかてしまう
古くから音響系やっている者は 自分の研究成果を組み込み機器に取り入れたがるうえに かつ考え方が古いので いつまでもC言語にこだわる。
100万でソフトを作らせて 1人月30万で3人でチーム組んだとすると 一ヶ月でその100万が消えてしまう。 その三人が無能だったら使えないソフトしか作れない。
MATLABをこよなく愛する人たちは 対話形式やウィザード、スクリプトが大好きで 設計が苦手な傾向にあるようだ。 彼らには型の違いに厳しいC/C++/Javaという言語が苦手だという傾向もある。
20 :
デフォルトの名無しさん :04/10/10 12:09:18
MATLABの開発環境で MATLAB付属以外のものを 使ってる香具師いる?
21 :
デフォルトの名無しさん :04/10/10 14:42:02
僕は制御をやっています。 個人としてはMatlabよりはCを使うことが多いんだけど、 Matlabの優秀さは認めています。 基本的な数学がわかっていればプログラミングの訓練を しなくても短期間でそれなりのことができちゃうからね。 Matlabの初(?)スレとしてはお勧め書籍とか値段とかを書くのがよいのかも。
MATLABによるDSP入門 この本、ほとんどがDSPのことばかり でMATLABのことやソースコードは ほとんど載っていなかった。
MATLABは大規模プログラミングに向いていないから 熱心に使おうという気が起きない。
24 :
デフォルトの名無しさん :04/10/12 05:38:26
matlabは主にデータのプロット用だね プログラムはCとかで書いた方が速いし
25 :
デフォルトの名無しさん :04/10/12 13:07:21
>>24 > matlabは主にデータのプロット用だね
あはは。ちょっと贅沢なgnuplot、ってところか。
>24 学会発表とか授業のプレゼン準備とかにMatlabでプロット作成してます。 EPSに吐けるし、いろいろと細かいところまでいじれるのがいいですね。
28 :
デフォルトの名無しさん :04/10/15 09:14:19
水流の3次元データの可視化の方法がよくわかりません。 データ形式はどのようなものを用意して、どのようなコマンドでプロットすればよいのでしょうか?
自分は制御のシミュレーションでMATLAB使おうとしてます。 MATLABの「LMI Control Toolbox」のLMIエディッタというのはどう言う風に使えばいいのか・・・ 初めて触ったけど全然わからない;; これ使ったら行列不等式とけるってわけではないのかな?Orz
30 :
デフォルトの名無しさん :04/10/16 03:38:54
surfの使い方がよくわかりません。例えばz=sin(x)cos(y) を表示したい場合はどのようにすればよいのでしょうか?
31 :
デフォルトの名無しさん :04/10/16 04:13:49
>>30 x=0:0.1:pi;
y=0:0.1:2*pi;
[X,Y]=meshgrid(x,y);
surf(X,Y,sin(X).*cos(Y));
32 :
デフォルトの名無しさん :04/10/16 14:49:10
fedora 2 に matlab 6 release 12 を入れたのですが matlab を起動すると Warning: Unable to load Java Runtime Environment: /usr/local/matlab/sys/java/jre/glnx86/jre/lib/i386/native_threads/libjava.so: symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference. Warning: Disabling Java support. ってエラーが出て GUI が起動しません だれか fedora 2 で GUI を使えている人いますか?
MATLABでLMIの計算とかってどうやってやるか教えてください たとえば A=[1 0;0 1] B=[0 0;1 1] C=[0 1;1 0] A*B*X+C>0 になるようなX とか>< ぜんぜんわかんない〜;;
34 :
デフォルトの名無しさん :04/10/21 17:34:09
OK、お勧めの参考書を聞こうか
35 :
デフォルトの名無しさん :04/10/21 17:40:27
つっかもうぜ!
37 :
大学生くん :04/10/22 01:31:51
MATLABで変形離散コサイン変換(MDCT)のプログラムを作りたいのですが、 どなたか教えてください。 DCTを使ってどうにかできないものなのでしょうか?
38 :
デフォルトの名無しさん :04/10/23 07:23:25
>>37 CやC++などでやるのがよろしいんじゃなくて?
39 :
デフォルトの名無しさん :04/10/24 12:09:41
3次元データを透過曲面を使って表示するにはどうしたらよいのでしょうか?
40 :
デフォルトの名無しさん :04/10/24 13:17:04
>>26 もちろん使っているコマンドだかオプションは
deps2cとかいうやつだよな?
カラーでな。
みんなeps使わず出力された
ポップアップウィンドウから
マウスでコピペしてる奴ばかり。
一つのグラフ書くたびに
毎回Xtick, Ytickを指定しset(’gca' とか
をコピペして
効率悪すぎ。
クラス作れなくても関数くらい作れや。
攻めてforとかwhileループとか
使って効率化くらいしたらどうだ
っていいたくなる奴ばかり。
>>29 シミュレーションに使うには
重たくて使いにくそうだな
43 :
デフォルトの名無しさん :04/10/24 13:19:51
>>39 シェルで
demoと入力して
エンターを押せ
そこに答えが見つかる
44 :
デフォルトの名無しさん :04/10/30 15:51:15
getframeでアニメーションを作成しているのですが、作成中は、matlabを最前面に表示しておかなければならず、 他の作業ができないのですが、matlabでディスプレイ上に表示させないで、aviムービーを作成することは可能でしょうか?
>44 表示内容はなんですか? 画像データとかであれば表示させずにimage変数内で用意して書き出せるんですが。
>>45 さんどうもありがとうございます
例えばこのようなものです
Z = peaks; surf(Z)
axis manual % Axes の範囲を固定します。
set(gca,'nextplot','replacechildren');
M = moviein(20);
for j = 1:20
surf(sin(2*pi*j/20)*Z,Z)
M(:,j) = getframe;
end
途中で書き込みしてしまいました。 >調べてみたら、画面表示なしにMatlab Tech Noteに載っていました。 調べてみたら、画面表示なしにムービーを作る方法がMatlab Tech Noteに載っていました。
MATLABの java がエラー吐くのは微妙に気になる。 ところで、皆は行列計算時に Out of memory が出たら どう対応してる?よく repmat でメモリ不足して困る。 今のところ行列を適当に小行列に分解し、for ループで まわしてるんだが、やはり遅さは否めない。 なんとかならんものかのぅ...
50 :
デフォルトの名無しさん :04/11/02 07:01:05
>>49 >どう対応してる?
そっち面がシビアなものにはMatlabは使わない。
51 :
デフォルトの名無しさん :04/11/02 17:27:10
52 :
デフォルトの名無しさん :04/11/02 19:09:34
>>47 さん
どうもありがとうございます。無事できました。
が、サイズがとても小さいのですが、大きくする方法はないのでしょうか。
GUIの場合は、windowを大きくすれば良かったのですが...
>>50 そうか...
そう大規模でもないんだがなぁ。たかだか400サンプルを
もとに計算しているだけだが、如何せん途中で大規模な
行列が生じるためにOut of memory...
ネックになっている行列操作だけ C で書いて走らせるか
なぁ。Optimization Toolbox が使いたいから、MATLABを
諦めきれん。
ガウスノイズに対して、帯域制限フィルタをかけて、滑らかな曲線にするような・・・ そんなフィルタ、何使えばいい?
単純なIIRフィルタじゃだめでしょうか? [b, a] = butter(3, [0.4 0.6]); y = filter(b, a, x);
>>54 わざわざ探してくれてありがとう.
扱う行列がでかすぎるのが問題なんだよね.
WS.調べたけど,1Gメモリ積んでても連続領域が460M
ちょいしかなかったのが原因だろうな.Windows 起動
時でそれなので,460M を越えないサイズで計算させる
しかないね.
せっかく計算をベクトル化したのになぁ(´・ω・`)ショボーン
58 :
デフォルトの名無しさん :04/11/07 18:19:25
新バージョンはいつ頃出るのでしょうか?
>>49 MATLABでJavaをよみこんでいるのか?
だったらJava単体コードを実行したときには
java.lang.OutOfMemoryErrorはでないのか?
>>59 >MATLABでJavaをよみこんでいるのか?
GUI周りはJava使ってるよ。
>59 >49さんは「ところで」の部分から違う話題に入ったっぽいので、 Javaとメモリ不足とは関係ないみたいです。 R13くらいからのMatlabではJavaのGUIコマンドを実行することもできるようになってるみたいです。 Swingを使ってウィンドウを出したりして遊んだことがあります。
62 :
デフォルトの名無しさん :04/11/15 12:28:40
レンダラーはopenglが一番いい結果になるの?
63 :
matlab help!! :04/11/22 11:07:33
すいません。自分は、corner frequencyが1kHzで4th orderの highpass butterworth filterをデザインしようとしてます。 同じ設定のlowpass filterをデザインすることはできたんですが、 そこから、highpass filterに変換することができません。誰かご存知だったら、 お願いします。lowpassのコードはこれです。 >> [B1,A1]=butter(2,1000,'s'); >> f=logspace(2,5); >> h1=freqs(B1,A1,f); >> mag1=20*log10(abs(h1)); >> semilogx(f,mag1),grid;
64 :
デフォルトの名無しさん :04/11/22 11:38:29
Ripple ってなんですか?
65 :
デフォルトの名無しさん :04/11/22 11:44:34
広がりながら飛ぶ環状のビーム
66 :
matlab help!! :04/11/22 13:08:29
いまだ苦戦してます。まじプリーズです。
おとなしいスレなんだから、たった2時間で回答が来ると期待しない方がいいですよ。 >> [B1, A1] = butter(2, 1000, 'high', 's'); じゃダメですか?
68 :
デフォルトの名無しさん :04/11/23 18:56:23
Matlab(Octave)で以下の式をシミュレートしたいのですがどの様な手順で進めるたらいいか、どなたか救いの手をよろしくお願いします。 dx(i)/dt = P(i) - k(i)x + a(i)x(i) - b(SUMx(j)) ここでxは2つあり、x=1の時は以下の式で解を求めます。 When D <> 0 x1(t) = (Ps/2S + Pd/2D) + (x1(0) - Ps/2S)e^(-St) - (Pd/2D)e^(e-Dt) When D = 0 x1(t) = xd(0) + Pdt/2 + Ps/2S + (xs(0) - Ps/2S)e^(-St), where S = k + B; D = k - B; xs=x1+x2; xd=x1- x2; Ps = P1+ P2; Pd = P1- P2; x=2の場合、Pd -> -Pd, x1 -> x2, xd -> -xdとし、同じ様に解を求めます。
randn()で発生させた正規乱数は平均0分散1ですが、これを平均1分散4にするには? 平均については1を足せばいいとわかりました。
正規分布N(μ,σσ) [<- σの2乗]に従う確率変数Xは Z = (X-μ)/σ と置くことで 正規化できる。 すなわち、Zは正規分布N(0, 1)に従う。 であるから、 Z〜N(0, 1)なる正規乱数に対して、 X = σZ+μ と置けば平均μ、分散 σ×σの正規乱数が生成できる。 要するに、出来た乱数に2をかけて1を足せばいいのだ。 基本中の基本と思うけど。
72 :
デフォルトの名無しさん :04/11/24 14:19:31
matlabを学ぶのに最適な本を教えてください
73 :
デフォルトの名無しさん :04/11/24 17:05:08
自己相関関数を求めたいのですが、 実装されているACF(AutoCorrelationFunction)の使いかたがわかりません。 [ACF]=acf(Z,N) とあり引数はZ=Signal,N=# of coefficientsと書いてあります。 Nには何を入れれば良いのでしょう…
そいつはxcorr より使いやすいのか? 約-21億から約21億までの値を 一個づつNに代入しながら 確かめてみよう。
>73 時間軸にある相関関数の数
76 :
デフォルトの名無しさん :04/11/24 22:21:14
>>72 Matlab一般って本はあまりないと思うぞ。
坂和先生の本とかは一般論に近いけど、僕はそんなに良いとは思わない。
分野を限定したら色々ある。
大学とかだと先輩が書いたマニュアルが便利なことが多いと思う。
>>75 レスさんくすこ
相関関数の数ってデータ系列から判断できるものなの?
勉強不足か…逝ってきます orz
>>72 付属のマニュアルとオンラインヘルプとデモ
まじめに書いてあるし、下手な入門書よりわかりやすいと思う
2つの分布関数から得られた各1000個の数字のヒストグラムを同時に2つ同じヒストグラフにかく。 これはhist(x1),hist(x2)の後や中に、何のコマンドを書けばいいんでしょうか?
関数y=x^3からyのサンプルデータをxを[-2,2]の範囲で100個取りなさい。 どうやるんでしょうか?
>>80 質問の意味がいまいちはっきりしないんだけど
x = rand(100,1) * 4 - 2;
y = x .^ 3;
っていうことなのかな。
>>79 同時に二つ書くというのはどういう状態がほしいんですか?
色違いの棒グラフが並んでいるようなイメージですか?
それだったらhistじゃなくて以下のような感じでもいいかも。
x1 = randn(1000, 1);
x2 = randn(1000, 1) * 2 + 1.5;
edges = -4:0.5:4;
h1 = histc(x1, edges);
h2 = histc(x2, edges);
bar(edges, [h1 h2]);
よく、乱数ではサンプルの統計のhistとその分布関数のグラフの図を 同一のグラフに描くをいうのがありますね。 それをx^3でやれというんです。(ちょっと違いますが) 乱数なら簡単なんですが、任意の関数からサンプルを取るとなるとわかんなくて。
>>82 参考になりました。ありがとうございました。
重ねることは出来ないんですね。
>>85 重ねようと思えば
hist(x1)
hold on
hist(x2)
でできますが、意図した結果にならないかもしれません。
>>83 やっぱりいまいち分からんのですが、こういうことですか?
x1 = linspace(-2, +2, 100);
y1 = x1 .^ 3;
[n, center] = hist(y1);
plot(center, n, 'k--');
hold on;
x2 = rand(100, 1) * 4 - 2;
y2 = x2 .^ 3;
hist(y2);
>>87 乱数を使えばいいんですね〜。
TAに質問したら、y=e(-x)の場合を考えてみろとかかれました。
e(-x)の関数の分布の形に乱数を発生させるのってどうすればいいんですか?
どう乱数を変換すればいいんですかね?
>>88 xに均一な乱数を生成して、それをexp(-x)に入れれば、
y=exp(-x)からの出力yはその分布に従うと思うのですが。
x = rand(10000, 1) * 3; % [0, 3]の一様乱数生成
y = exp(-x);
hist(y, 100); % 分布を表示
>>86 の後半でやっていることも同じですね。
matlabのスレが一番近いんで多少スレ違いかもしれませんが質問させてください 大学でscilabを使う問題が出されたのですがまったく無知ゆえさっぱりです どうか住人の方のお力をお借りしたいです aシューティングメソッドを使って解け b有限差分法を使って解け y''=-2y'-4y y(0)=2 y(1)=2
自分で解くべき宿題を持ってこられても困ります。 授業で出された問題だったら「まったくの無知」というのもおかしな話なので、 大学の先生に質問してみましょう。
一人でもライバルを減らすため、私は答え続けます。
その程度の問題で他人に助けを求めるほうこそカスでしょ。 しかもスレ違いなんだし。
どなたかOCTAVE使ってる方いますかね? 下のMATLABの簡単なプログラムをOCTAVEで走らすのに苦闘中です。 function bdot = heatup(t,b) global a h q w; bdot = (q-h*(b-a))/w; endfunction global a h q w; a = 18; h = 50; q =1000; w=10; [time,bt] = ode23('heatup',0,1,30) plot(tme,bt) これを下の様にしたんですがグラフが見事にちがうんです。どこがいけないですか? function bdot = heatup(t,b) global a h q w; bdot = (q-h*(b-a))/w; endfunction global a h q w; a = 18; h = 50; q =1000; w=10; t= linspace(0,1,100); tb = lsode('heatup',[0],t) plot(tb)
失礼 tb = lsode('heatup',[30],t)でした。 なんでだめなんすかね?
98 :
matlab help!! :04/12/06 09:21:22
1kHzのsquare waveを使って0dBのSNR(信号ーノイズ率)を作るためにノイズを加えた後、 可能な限りのsquare waveを維持しながら、 可能な限りのノイズを吸収するするフィルターを作ろうとしてます。 バターワースもしくはChebyshev1 のフィルターのハイパス、ローパス バンドパスかnotchを使ってフィルターを作りたいんですが、下のコードの A,Bに入れるcodeがわかりません。 どなたかわかりますか?
99 :
matlab help!! :04/12/06 09:22:41
--------------------------------------------------------------------------------- t = 0:0.00001:0.005; % Generate time index. x = 100*square(2*pi*1000*t); % Generate square wave. var(x) % Determine the variance of x. pause plot(t, x), axis([0 0.005 -150 150]); % Axis command means to plot the % signal from 0 to 0.005 for t axis % and from -150 to 150 for x axis. noise = 100.0*randn(1, length(t)); % Generate gaussian (normal) noise % signal. var(noise) % Determine the variance of the noise. pause plot(t, noise), axis([0 0.005 -300 300]); % Plotting noise pause xn = x + noise; % Add square wave and noise. var(xn) % Determine the variance of xn. pause plot( t, xn); % Plot square wave plus noise signal. y1 = filter(B, A, xn); % Filter the noisy signal. You get B & A % from your filter design using butter % or cheby1, or? plot(t, y1); % Plot filtered noisy signal. pause plot(t, x, t, y1); % Plot noiseless signal and filtered % noisy signal together. ----------------------------------------------------------------------------------
100 :
matlab help!! :04/12/06 09:26:00
すいません読みずらいので、もう一回張ります。 --------------------------------------------------------------------------------- t = 0:0.00001:0.005; x = 100*square(2*pi*1000*t); var(x) pause plot(t, x), axis([0 0.005 -150 150]) noise = 100.0*randn(1, length(t)); var(noise) pause plot(t, noise), axis([0 0.005 -300 300]); pause xn = x + noise; var(xn) pause plot( t, xn); y1 = filter(B, A, xn); plot(t, y1); plot(t, x, t, y1);
1kHzのsquare waveは3kHz、5kHz、7kHz、9kHzというように 奇数倍の周波数に倍音成分が入っているので、 単純なbutterやchebyフィルタじゃ取り出せないと思います。 各倍音成分を取り出せるようなフィルタを考えてみましょう。
102 :
matlab help!! :04/12/06 10:38:21
>101 butterworh/chebyshefフィルタしか使えるのが、ないんですよね。 (まだその2つしか習ってない・・。) 例えば、square wave+noise signalっていうのは、butterやchebyでは ちょっとのノイズでも取り出せないんですかね?
ちょっとインチキくさいんですが、
>>101 で書いた「各倍音成分を取り出す」ということを
Butterworthを使って実装してみました。
もっといい方法はあるんでしょうが、
自分は信号処理の専門家じゃないので
この程度しか思いつきませんでした・・・。
fs = 100000;
t = 0 : 1/fs : 0.005;
x = 100 * square(2*pi * 1000 * t);
noise = 100.0 * randn(1, length(t));
xn = x + noise;
width = 20;
y = zeros(size(xn));
for n=1:20
fc = (2*n-1)*1000;
[B, A] = butter(1, [fc-width fc+width] / (fs/2));
y = y + filter(B, A, xn)/(2*n-1);
end
y = y/max(abs(y)) * 100;
plot(t, xn, 'r', t, y, 'k');
104 :
matlab help!! :04/12/06 12:15:45
早速の返信しかも、コード付でありがとうございます。 ちょっと見たことがないコマンドがいくつか ありますけど、打ち込んだらしっかりとしたフィルターグラフが出てきました。 すいません、ここでまたまた質問なんですが、butterworthを使った場合 1st order butter worthでないと、いけないんでしょうか?
105 :
matlab help!! :04/12/06 12:55:39
長すぎるぐらいのcodeが一応できました.butter使いました(あってるか確信ないけど・・・。)時間があったら見て みてください。 ------------------------------------------------------------------------------------- t = 0:0.00001:0.005; x = 100*square(2*pi*1000*t); var(x) % Determine the variance of x. plot(t, x), axis([0 0.005 -150 150]); xlabel('Period(Second)'), ylabel('Amplitude') title('Noiseless Signal'); noise = 100.0*randn(1, length(t)); var(noise) plot(t, noise), axis([0 0.001*5 -300 300]); xlabel('Period(Second)'), ylabel('Amplitude') title('Noise'); pause xn = x + noise; var(xn) plot( t, xn); xlabel('Period(Second)'), ylabel('Amplitude') title('Noised Signal'); pause Wp = (5/500); Ws = (250*0.707/500); Gp=-2; Gs=20; [n,Wn] = buttord(Wp,Ws,-Gp,-Gs); [B, A]=butter(n,Wn); y1 = filter(B, A,xn); plot(t, y1) xlabel('Period(Second)'), ylabel('Amplitude') title('Filtered Noisy Signal'); plot(t, x, t, y1); xlabel('Period(Second)'), ylabel('Amplitude') title('Noiseless Signal and Filtered Noisy Signal');
106 :
デフォルトの名無しさん :04/12/06 16:36:17
フィルターの 次数を求める故の阻止域端減衰量、通過域端減衰量、阻止域エッジ周波数の求め方がわかりません。 これは、ノイズのグラフから求められるものなのですか?それとも、何か 公式があるのでしょうか? ちなみに、フィルター使用としてるノイズは1kHzのsquare waveにSNR値を0dBに したノイズです。
別にbutterの次数が1でなくてもいいんですが、 いくつか変えて実行してみて、 それの出力が良さそうだったので選んだまでです。 buttordで次数を決めるのはいいかもしれませんね。 buttordに指定する係数は自分がどういうフィルタを作りたいかに関係するので、 この場合はこうしろ、という公式があるわけではなさそうです。 いくつか試して、最適なものを選ぶと良いでしょう。 使ったことなければMatlab Signal Processing Toolboxの FDATool というのも グラフィカルにフィルタが作れるので、 フィルタデザインを理解するのに良いかもしれません。
108 :
デフォルトの名無しさん :04/12/06 19:59:02
すいません、ノイズって完璧に取り出す事って可能なのでしょうか?
画像処理の分野ではけっこうすごい量のノイズでも、 ノイズの種類などが分かっていれば除去できるアルゴリズムを見たことがあります。 もちろん、完全に除去できるわけではありません。 たぶん音声信号でも同じでしょう。 多くの場合は「耳で聞いた限りはノイズがない状態」に持っていくことはできても、 「ノイズが加えられる前の状態」にするのは相当難しい(あるいは不可能)だと思います。
110 :
デフォルトの名無しさん :04/12/06 21:54:23
ありがとうございます。
111 :
デフォルトの名無しさん :04/12/07 13:31:39
計算したデータをテキスト・ファイルに書き込む方法を教えてください! fpritfで保存すると参考書に書いてあるんですが, どのフォルダのどこに保存されているかも解りません. cやFortranのように,データファイルの保存は出来ないのでしょうか!?
112 :
111 :04/12/07 13:40:37
↑で質問した者です. 保存されている場所が解りました.workフォルダだった. すみませんでした.
普段はウィンドウ上のほうに有るカレントディレクトリだな fopenのときフルパス出開くこともできるんでないか?
114 :
111 :04/12/07 18:42:04
>>113 レス,ありがとうございました.
あと,自分のMatlabでは,
randint()やmodmap()などの関数が認識していません.
どうやったら,使えるようになりますか!?
115 :
111 :04/12/07 21:37:16
↑Matlab6.5のバージョンです. communications Toolboxが入っていないからかな?? 誰か教えてください.
>114 一番簡単な方法は「save -ascii」だと思われます。
もしもっと柔軟なファイル書き込みがしたいんだったら以下のようなものが使えるかもしれません。 fid = fopen([filename, 'w'); format = '%9.4f'; for row=1:size(data, 1) for column=1:size(data, 2) fprintf(fid, format, data(row, column)); end fprintf(fid, '¥n'); end fclose(fid);
118 :
デフォルトの名無しさん :04/12/08 11:58:00
xにガウシアンノイズを加えたいんですが N(0,σ)とあるんですがこのσはランダムに 選ぶしかないんですか?
σでガウス分布の裾野の広がりぐあいを指定します。 特にこれといった要求がなければ1でいいんじゃないでしょうか。 もしそれが学校の宿題の問題なんだったら、 先生に聞くのが一番手っ取り早いですよ。
>>111 raindintもmodmapもCommunications Toolboxだね。
入ってないなら使えない。
どうしても使いたいなら買ってください
121 :
デフォルトの名無しさん :04/12/08 22:06:34
age
>>111 完全互換にするのは面倒ですが、
似たものを自作という手もありますよ。
たとえばrandint()なら
round(rand*m)
なんていうぐあいに。
123 :
111 :04/12/10 17:52:34
色々調べた結果、communications Toolboxが自分のパソコンには入っていなく、 認識出来ませんでした。 研究室から全ツールが入ってものを入れて、解決しました。 みなさん、色々なアドバイスありがとうございました。 そこで、もうひとつ質問があります。 ある参考書にQPSK信号を作るのに、 % 信号作成 Pd = 2000; % Pd : 送信されたシンボル数 Fd =1;% Fd:シンボルレート;1Hzに正規化 Fs = 4*Fd; % Fs : シンボルあたりの標本数 R = 0.5;% R : roll-off factor Delay = 5;% Delay : フィルタの遅延時間 [symbol] No = 1;% No : 雑音の電力密度スペクトル [W/Hz] M=4;% M:多値数 % 信号系列発生(M値(0,1,2,3)の乱数発生) x1 = randint(Pd,1,M); % 信号配置変調のためのマッピング y1 = modmap(x1,Fd,Fs,'qask',M); %フィルタリング(raised cosine filter) [rcv_a1,ti] = rcosflt(y1, Fd, Fs, 'fir/sqrt/Fs', R, Delay); % 変調波信号の発生複素振幅変調 s1 = amodce(rcv_a1,Fs,'qam'); のように作ってありました。 でも一番下の行のamodce(rcv_a1,Fs,'qam')はQAM信号を作るソースですよね!? 上のプログラミングソースはQAM信号、QPSK信号どちらを作るものですか? 分かる方がいらしたら、是非教えてください! お願いします
ガッコのライセンスって所属してる個人のパソコンにインストールできるんだ。 いいなぁ。ウラヤマスィ。
もしかして通報の対象か?
ネットワークライセンス版ならいいんでない? どうせ研究室外に出たら使えないし、ライセンス数も同時使用数の形でサーバー側で管理してるんだから。 それか、自分のっていっても占有できるだけで、研究室の備品だとか。 マイクロソフトのキャンバスアグリーメントは契約次第で 学生や教職員の個人のPCにインストールしてもOKってのがあるらしい
今回の例は駄目だよな
>>126 ネットワークライセンスでも…技…にはでき…なんだな。
実際の使用条件ってどうだっけ?オレ、鯖のセットアップは自分でやった
けど研究室でしか使わないからその辺りを意識したことなかったな。
>学生や教職員の個人のPCにインストールしてもOKってのがあるらしい
うちの学科はそれやってる。Officeはついてこないけどね。
129 :
デフォルトの名無しさん :04/12/12 03:34:43
ひとつ質問したいのですが。 Cで計算し、出力したプログラム(txt)をmatlabを用いて グラフ化するやり方がわかりません。 出力したプログラムは 時間Tに関して、それぞれx y zの三つの値がでて、それが5千行ある結果なのですが。。 matlabにうつコマンドは plot3(ファイル名(:,2),ファイル名(:,3),ファイル名(:,4)) だとおもうのですが、、 ちなみに、matlab5.3を使っています。これは98年くらいで 結構ふるいのですが、 よろしければおしえてください。
130 :
デフォルトの名無しさん :04/12/12 03:36:06
129です。 Cで計算し、出力した結果(txt)をmatlabを用いて です。
131 :
デフォルトの名無しさん :04/12/12 03:59:11
>>129 p = load('filename.txt');
plot3(p(:,2),p(:,3),p(:,4));
でいいんじゃないでしょうか。(時間軸を無視しちゃいますけどね)
132 :
デフォルトの名無しさん :04/12/12 15:01:05
>>131 れすありがとうございます。
まだうまくできないのですが。。。
ほんとうに初心者ですいません。
》 p = load(''filename.txt');
??? エラー: ==> load
result5.txt: Can't open file.
>>129 >> help fopen
>> help fread
>> help fscanf
135 :
デフォルトの名無しさん :04/12/12 15:43:22
>> help 2ch
グラフ書きたいだけだったらMatlabじゃなくてExcelとかを 使ってもいいんじゃないでしょうか?
137 :
デフォルトの名無しさん :04/12/13 15:55:57
excelはデータの個数制限がきつすぎる
そうでしたか。 了解しました。
139 :
デフォルトの名無しさん :04/12/14 22:50:00
MATLABでFM信号を作ると、複素数の値で出てきます。 それを教授に言ったら、「複素数なんて、実際の通信ではありえない」と 怒られました。 複素数の信号から実際の使われている値に変換することって出来ませんか? 論文の提出期限まで時間がないので、かなりビンチですぅ
140 :
デフォルトの名無しさん :04/12/14 23:15:53
wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─ !!!
141 :
デフォルトの名無しさん :04/12/15 02:19:32
質問させてください
bitmap 2階調でデータを保存したいのですが、
imwrite( data, gray, 'savename', 'BMP' ); %%(データは0~64の整数値)
とすれば、一応RGBで保存してくれるのですが・・・・。
白黒で良いので0or1の2階調で保存したいのです。
いいアイデアあれば教えてください。
>>139 時間領域の信号に複素数はありえないよ。
周波数領域なんでしょ、FM変調なんだし。
教授が怒るのも分かる気がする。
>>139 複素数から実数にするには一般的には
「実数成分だけ取ってくる real(x)」とか
「振幅だけ取ってくる abs(x)」とかを使いますが、
それは「実際に使われている値」に変換する方法ではありません。
そもそもFM変調の仕方がおかしいような気がしますので、
その部分を見直した方が良いでしょう。
ディザにする必要がなければ bw = data > 128; などとやってムリヤリ0と1に変換してしまうのが手っ取り早いかと思います。
レス番付けるの忘れました。
>>143 は
>>141 への答えでした。
>>139 なんですが、Signal Processing Toolboxには以下の
FM変調コマンドがあります。
y = modulate(x, Fc, Fs, 'fm');
入力であるxが実数であれば出力yも実数値が出てくるはずです。
139さんの用途にあうかどうか分かりませんが、試してみてください。
>>143 たびたびすみません。
X = dither(I);
というコマンドがImage Processing Toolboxにありました。
もし白黒2値化にディザが必要であればチェックしてみてください。
MATLABで指紋認識のプログラムを作って卒業研究にしたいとおもいます。 全く二値化のあたりからわからないです。だれかアドバイスください。
147 :
139 :04/12/15 19:05:53
>142,143,144 レスありがとうございます。 今から、試してみます。
148 :
デフォルトの名無しさん :04/12/15 19:31:59
>>146 灰色にして、どこかで切ればいいんじゃないの?
149 :
139 :04/12/15 19:33:24
>144さんへ 今、教えられたようにy = modulate(x, Fc, Fs, 'fm',kf); をhelpで調べ、使うと思っているんですが、 xには一般的ににどのような実数を入れれば良いのでしょうか? 試しに、xにsin関数の値を入れて実行しましたが、、、。 質問ばかりでごめんなさい。 でも、本当に感謝しています。
150 :
139 :04/12/15 20:54:35
>144さんへ 今、FM信号とAM信号を生成し、シミュレーションしました。 良いと思われる結果が出ました。 これからFM,AM信号の他に、PSK信号やFSK信号も作りたい思います。 また、何かありましたらよろしくお願いします!
>>146 画像の二値化の簡単な方法は
>>143 >>145 に。
>>148 の「どこかで切る」の切る場所が知りたければ
大津先生の方法とかが参考になるかも。
理解するには統計知識もちょっと必要になったりします。
153 :
デフォルトの名無しさん :04/12/15 23:57:30
>>143 >>144 有難うございます。
2値化は既に出来ているんです。(ディザにする必要はないです)。
0と1の値からなる行列データを白黒(2bit)ビットマップとして保存したいのです。
iwriteでは無理なのでしょうか。HELPみてもそこいらへんについて書いていなかったので・・・。
なにか良い方法があるのでしょうか
超初心者ですが、 aとnは任意変数で、 aのn 乗根を計算するコマンドがないのですか? sqrt(n)しかしらないので。
155 :
デフォルトの名無しさん :04/12/16 00:28:48
いや、n√a=?みたいのコマンドを聞きたいのです。
a^(1/n)
うわ、こんな簡単だったなんて… どうもです、吊ってきます。
>>153 imwriteに'BitDepth'パラメータを指定することで
1ビットの白黒データにできますよ。
もしくはTRUE/FALSEデータをimwriteに
突っ込めば勝手に白黒だと認識してくれます。
ただ、PNG、BMP、TIFFくらいしか1ビットには対応してない気がします。
具体的には imwrite(IMG, 'hoge', 'png', 'BitDepth', 1); です。
161 :
デフォルトの名無しさん :04/12/16 08:34:47
>>160 ご丁寧に有難うございます。
試してみます。
162 :
デフォルトの名無しさん :04/12/16 18:00:21
スピーカーからでている音の伝播をを可視化するような シミュレーションのサンプルってありませんかね? たとえば、1kHz正弦波をだした時の音圧の濃密がカラーで わかるような。
163 :
デフォルトの名無しさん :04/12/16 18:11:37
>>160 やってみました。
imwrite( kami, savename, 'bmp', 'BitDepth', 1 );
これだと、
?? エラー: ==> c:/matlab6p5/toolbox/matlab/iofun/private/writebmp
入力引数が多すぎます
エラー: ==> C:\MATLAB6p5\toolbox\matlab\iofun\imwrite.m
行番号: 310 ==> feval(fmt_s.write, data, map, filename, paramPairs{:});
エラー: ==> C:\MATLAB6p5\work\func2bmp3.m
行番号: 67 ==>imwrite( kami, savename, 'bmp', 'BitDepth', 1 );
と怒られます。bmpをpngにするとうまくいきます。
うーん、bmpはだめなのか・・・。
ちなみにバージョンは6.5(R13)です。
ImageProcessingToolboxは持っていません。
SignalProcessingToolboxはあります。
164 :
デフォルトの名無しさん :04/12/16 18:17:53
質問させてください。 256点の領域に60点放して等強度(強度1)のスペクトルを仮定し、(その他のデータ点は0)これを@、 これとは別に129点の真ん中にスプレッドの中心がくるような全面積1のラインスプレッド関数を つくります。これをA この二つをコンボリューションした後をBとします。 これをそれぞれフーリエ変換するとB=A*@が成り立つので、@=B÷Aにして逆フーリエ変換 したのですが、グラフが正しく出てこず、ためしに絶対値表示にしたらうまく元の@の図が出てきました。 絶対値表示にしなければいけなかった理由を教えてください。スペクトルは波の強さを表す必要が あるからですか?? よろしくお願いします。
165 :
デフォルトの名無しさん :04/12/16 18:21:49
>>164 fftをN点で行ったら値はN倍されて算出されるので、N割りしないといけないから。
166 :
デフォルトの名無しさん :04/12/16 19:01:14
>>165 ありがとうございます。
でも、勉強不測のためわからんかったっす。
高速フーリエ変換と離散的フーリエ変換を勉強すれば上記のことはわかりますか?
167 :
デフォルトの名無しさん :04/12/16 19:23:37
>>166 分かると思います。
2次元信号ではなく1次元信号で確かめてみてはいかが?
簡単にN倍されていることが分かるはず。
>>163 PNGでは試したんですが、BMPでは試してなかったのがバレバレですね。
すみませんでした。
>>159 で書いた別の方法(TRUE/FALSEを使う)だとうまくいきました。
以下の文ではlogical()を使って0と1だけが含まれているAをT/Fに変換しています。
imwrite(logical(A), 'test.bmp', 'bmp');
169 :
139 :04/12/17 00:14:05
y=modulate(x,Fc,Fs,'pm') を使い、4-PSK信号を作るにはどうした良いですか!?
PSKはCommunication Toolboxに含まれている dmodceを使うのがラクでしょう。
そういえばdmodというのもありました。 用途に合わせてどうぞ。
172 :
ken :04/12/17 14:30:24
誰か卒論やってー
174 :
139 :04/12/17 17:58:05
>171さん どうもです! さっそく,自宅に帰り次第試してみます.
はじめまして。今、学校でマトラボのプログラミングを習っています。二進数同士の足算で+などの記号を使わずにプログラムを作りたいのですが、(コンピュータに規則を学習させてプラスと言う事柄を理解させるには?)どうやってよいか分かりません・・・ 例えば十進数を二進数に直すときは clear;close all input1=[ 1 2 3 4 5 6 7 ]; target1=[ 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 ]; p=input1'; t=target1'; net=newff(minmax(p),[5,3],{'logsig','purelin'}); net.trainParam.epochs=500; net.trainParam.lr=0.1; net=train(net,p,t); a=sim(net,p) といった感じなんですけれど、こんな感じのをベースにして、足算をさせるにはどうするのでしょうか? どうしても分からないので、教えていただけたら幸いです。
2=1+1だけ定義して 3=2+1=(1+1)+1 4=3+1=((1+1)+1)+1
177 :
デフォルトの名無しさん :04/12/18 09:37:28
理論は分かるけどMatlabでの実現方法が分からない、 っていうんだったらこのスレでいいけど、理論のことはスレ違い。 卒論や宿題のお手伝いスレじゃないぞ。
178 :
デフォルトの名無しさん :04/12/20 11:52:16
>>168 返事が遅くなりすみません。
早速、行列をlogicalに変換してやってみます。
179 :
デフォルトの名無しさん :04/12/20 23:57:47
180 :
デフォルトの名無しさん :04/12/25 16:33:41
matlabで2次元のグラフを回転させて3次元のグラフにすることは可能でしょうか? 具体的に言うと3次元でのグラフがz軸で対象なためとりあえず2次元で解いて それをz軸において回転させて三次元のプロットにできたらいいなと思ってます。 世の中そんなに甘くないのでしょうか?;;
181 :
180 :04/12/25 16:40:35
上に補足ですがデータはmatrix(二次元)になってます。
182 :
デフォルトの名無しさん :04/12/25 21:13:30
3次元で最初からプロットしたら?
>182三次元で式を解くことができないんですよ・・楕円関数を含んでるので、 >183 meshじゃちょっと違うんです。X(i,j) とZ(i,j)があってそれをstreamsliceで vector fieldでplotしてるんですよ。今は二次元なんですが、matrixを三次元にする というよりは二次元(i,j)を回転させて三次元のplotにしたいだけで。。 いろいろやってみましたが唯一できるかなって思ったのはX(i,j)とZ(i,j)をcylindrical coordinateと考えてthetaをいれてそれをpol2cartでかーてじあんに変換してplotかなって。。 どうでしょうか?わかりずらい文章ですいません。。
>>184 古いバージョンのマニュアルに出ていた例ですが、z軸からの距離をrで表し、
二次元の関数をZ=f(r)=sin(r)/rとします。
x, yともに-8から+8までの範囲を描くとすれば
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(Z);
これでf(r)=sin(r)/rをz軸中心に回転させた図形が描けます。
> 185さん なるほど、その方法参考にしてどうにか当てはめてみようと考えましたが、 私の場合はFx=f(x,y,z)、Fy=f(x,y,z)、Fz=f(x,y,z)のvector fieldをplotしたいんです;; それでもってFx=FyなのでFx=Fr=f(x,z)、Fz=f(x,z)で解いてz軸に回転させたvectorfieldを plotできるかなーって思ってました。 185さんの意見を参考に考えぬいてFrにcos(theta)をかけてFxとし、sin(theta)をかけて Fyとしておいてみました。これでFx= f(x,z,theta)、Fy= f(x,z,theta)、Fz= f(x,z,theta)と 一応三次元にしてみたものの、、自分でよくわからなくなりました。(汗 もうちょっと考えて見ます。 アドバイスありがとうございます。
187 :
デフォルトの名無しさん :04/12/27 11:23:30
重み付けした確率を求めたいのですが、求まりません。 どなたかお願いします! 例えば1〜5の数があるとして、 1のでる確率が0.3、5のでる確率が0.1 といった感じにしたいのですが…。 詳しい方、アルゴリズムだけでもいいのでお願いします。
>>187 その簡単な例を実現するだけであれば
a = rand(1,1);
switch(a)
case a<0.3
%確率0.3 [0.0, 0.3)
b = 1;
case a<0.4 [0.3, 0.4)
%確率0.1
b = 2;
case a<1.0 [0.4, 1.0)
%確率0.6
b = 3;
end
みたいにできますが、もっと複雑な乱数生成がしたいのであればStatistics Toolboxに含まれているrandom関数を調べてみましょう。
(上のプログラムでcase文のところにある[...) の位置は、その一行下のコメント内に移動して考えてください。)
190 :
デフォルトの名無しさん :04/12/27 12:07:15
丁寧なアドバイスありがとうございます。 もう少し複雑に乱数を生成したいのでrandom関数をいじってみます。
191 :
デフォルトの名無しさん :04/12/28 21:12:21
matlabどころかプログラム自体初心者で申し訳ないのですが… matlab用の実験toolboxを使って心理実験等を作って、それをWeb上で動かして より多くの人のデータを取りたいと思っているのですが、可能でしょうか? 基本的な作業の流れ等、教えていただければうれしいです。
>>191 CGIは書けますか?できればC言語で。
それができるならばUNIX用 or Linux用のMatlabでは可能だと思います。
インターフェイス部分はWebでは利用できないでしょうが、エンジン部分なら
使えそう。
>matlab用の実験toolboxを使って心理実験等を作って
ここを詳しく書かないと有用な情報を得るのは難しいでしょ…
自分は音響心理実験をMatlabのGUIでやってますが、実際にPCの前でヘッドホンをしてもらう、というのが中心で、Web版の経験はないです。 でも、WebであればCGIをPHPやPerlで作ってしまって、集めたデータ処理だけをMatlabで行う方が簡単だと思いますよ。 どうしてもWeb上でGUIを使いたいのであれば、JavaアプレットかFlashを使わないといけませんね。
194 :
デフォルトの名無しさん :04/12/29 02:53:34
>>139 > MATLABでFM信号を作ると、複素数の値で出てきます。
> それを教授に言ったら、「複素数なんて、実際の通信ではありえない」と
> 怒られました。
> 複素数の信号から実際の使われている値に変換することって出来ませんか?
> 論文の提出期限まで時間がないので、かなりビンチですぅ
いいよ、そのまま論文出しちまえ。
そんなことを言う教授は戒めのつもりで言っているつもりなんだろうが
今の時代にその教授の学生に対するやり方、態度は時代遅れで通用しない。
「複素数なんて、実際の通信ではありえない」
なんて言ってきたら
「だから何だってんだ? あんたは何が言いたいんだ?全然意味がわからん。
先生が何を言っているのか先生が何を考えているのか全くわからん。
先生が何のためにそんなことを言っているのかわからん。」
と言ってやれ。教官によってはかなりへこむぞ。
わからねえならとりあえずabs()で絶対値をとっちまえ。
それでも教授が文句をいうなら
「先生の指導能力が悪く、先生の意図していること、
目的がわからず時間がないのでこうさせてもらいました。」
とでも言っておけ。
>>193 > 自分は音響心理実験をMatlabのGUIでやってますが、実際にPCの前でヘッドホンをしてもらう、というのが中心で、Web版の経験はないです。
MatLabでいちいちGUIとはおめでたい。
> でも、WebであればCGIをPHPやPerlで作ってしまって、集めたデータ処理だけをMatlabで行う方が簡単だと思いますよ。
> どうしてもWeb上でGUIを使いたいのであれば、JavaアプレットかFlashを使わないといけませんね。
いまどきJava Appletなんかつかわねえよ。
これからはリッチクライアントたる Java Web Startの時代だ。
そもそも、CGIやPHPといったサーバサイドを意識しているなら
そこでクライアントサイド専用のJava AppletやFlashを持ち出すのは
何か不釣り合いだ。Servlet/JSPを忘れてないか?
196 :
デフォルトの名無しさん :04/12/29 03:10:51
>>192 >
>>191 > CGIは書けますか?できればC言語で。
なぜのろまなCGIや時代遅れなC言語に拘るのか理解できんな。
CではなくPerlやPHPやServlet使えば何だって可能だぞ。
MatLabの出力結果をサーバサイド言語に入力して
Webに出力すればいいだけなんだからよ。
そもそも
>>191 が目指しているWeb上で動かすものとやらが
どの程度もものなんだかな。
サーバ側にあるプログラムをクライアント側に
ダウンロードしてから実行する程度のものならCGIもServletも不要なんだがな。
HTMLとあまりかわらんな。そこでAppletやらFlashやらJavaWebStartやら
ドトネトのノータッチデプロイメントやらが出てくるわけだが。
サーバ側で処理してから結果をクライアント側に返す程度だけの場合も
いまいちだな。
サーバ側で計算しクライアント側に応答を送るだけでなく
クライアントからサーバにリクエストを送信する場合のときのみ
CGIやPHP, JavaServletやJava RMI
といったサーバサイドテクノロジが必要だ。
サーバ側にServlet、クライアント側にAppletという組み合わせで動く
システムもあるがな。
Flashをサーバサイドと連携する場合はFlash RemotingMXなんてものを
使う手もある。ColdFusionというものも使う手もありだ。
>>195 質問者のことを理解していない低俗な煽りですが、とりあえずマジレスしておきます。
>MatLabでいちいちGUIとはおめでたい。
Matlabを使えば複数言語を覚える必要なく、実験からデータ処理まで一貫して行えるので便利です。
特に心理実験では一回実験をやったら用無しになるものが多く、販売用アプリケーションを作るわけでもないので、思ったものが素早く作れるMatlabが自分にとっては最適です。
>いまどきJava Appletなんかつかわねえよ。
>これからはリッチクライアントたる Java Web Startの時代だ。
JWSも十分理解していますよ。でもアプレットの方が現在でも情報が入手しやすいのでおすすめしただけです。
>そもそも、CGIやPHPといったサーバサイドを意識しているなら
>そこでクライアントサイド専用のJava AppletやFlashを持ち出すのは
>何か不釣り合いだ。Servlet/JSPを忘れてないか?
サーバーだのクライアントだの技術面で切り分けるのではなく、実験者と被験者にとって最適なものを提案したいだけです。
Java系のSEをやっていたこともありますので、そういった技術も十分に承知していますが、
ServletやJSPだとリッチクライアントがまだ作れない上に、プログラムもCGIに比べて大規模になりがちです。
また、理解すべきことが多すぎますので、プログラミング初心者だという>191さんには向かないと思いました。
198 :
デフォルトの名無しさん :04/12/29 04:18:36
だからそのCGIというのは何かおかしいぞ。 CGIが言語だと勘違いしていないか? いまどきServletやJSPが難しいって、いつの時代の人間なんだが。 本当にリッチクライアントの意味わかって言ってるのか? StrutsもJSFもTapestryもVelocityもXDocletも知らないのか。 これらを使いこなせば大規模に見えるJava開発もCGIよりも簡単に なるわけだが。
あんたのほうが低俗な煽り。 質問者のことを理解していないという以前に 質問者の質問がアホ過ぎるほうが低俗。
>>198-199 自分はJava言語が一番のお気に入りですし、Webサービス系の仕事をしていました。
StrutsなどのMVCフレームワークやO/RマッピングのためのフレームワークもSEをやっていたときに使いましたし、様々な技術に関してフィージビリティ・スタディのための調査もしました。
その経験からもServletやJSPが初心者にとって難しいのは事実だと思っています。
少なくとも質問者は、Webプログラムの書き方をマスターしたいのではなく、効率のよい実験をしたいだけのように思えますし、
Javaのサーバーサイド技術に関してはMatlabスレで議論する内容じゃないでしょう? 他のところでやりませんか?
201 :
デフォルトの名無しさん :04/12/29 08:54:13
191です。御返事ありがとうございます。 やりたい実験の内容を書いていないとしょうがなかったですね。 とりあえずMatlabに慣れようと思って、簡単な刺激提示(文字/絵)→キーを押すまでの 反応時間の計測という程度の実験(ストループ実験のような)を作ってみようかなと思った次第です。 そこで、それがなるべくウェブを通じて多くの人にやってもらえる方法はないかなと、 いう質問でした。 皆さんにとっては大分しようもない質問だと思いますが、なにぶん私が全くの門外漢なもので、宜しくお願いします。
>>200 とにかく藻前はCGIが言語だと勘違いしている時点で(ry
>>201 ただの体感ソフトを作りたいだけなら
CGIもServletもいらんな。
Webを通して他人に使って貰いさらに
そこからデータを取得したいなら
多少のサーバサイド技術を使うが。
>>201 Matlabを使うのであれば、オフラインで(被験者にPCの前に座ってもらって)行うようなプログラムがいいと思います。
また、オンラインで行いたいのであれば、Java Applet、Java Web Start、Flashなど、リアルタイム性のあるクライアントで動作するものがいいでしょう。計測結果はプログラムがメールで発送するようにすれば、サーバーを用意する必要もありません。
どうしても何らかのかたちでMatlabを使い、かつオンラインで行いたい場合、Matlab Web Server (
http://www.mathworks.com/products/webserver/ ) を導入し、リアルタイム性のあるクライアント・ソフトと組み合わせるという手もありますが、むりやり難しい解決法を選ぶ必要もないでしょう。
>>202 CGIをプログラミング言語だなんて言った覚えはありません。
そう読み取れる文章を書いたこともないはずです。
ツッコミを入れる時はちゃんと文章を読んでからにしてもらいたいです。
>>204 はJavaWebStartをとってつけたように今覚えたばかり臭いですなw
>>205 だったら誤解されないよう文章を書くこった。
誰もが自分と同じ考え方を持っていると勘違いしないようになw
>>204 > 計測結果はプログラムがメールで発送するようにすれば、サーバーを用意する必要もありません。
sendmailはどうやって動かすんだい?
>>205 もう一度自分の文を読み返してみ。
> でも、WebであればCGIをPHPやPerlで作ってしまって
これはチミがPHPのことをろくにわかってない証拠になるものですな。
これで「自分の思い通り読みとれ」などとよく言えますな。
こういうのを厚顔無恥というのですよ。
choix ◆pnCm4bpG3Y は本当にSEをやっていたのか? SEらしくない発言が目立つのだが。 顧客と交渉する能力もたいしたことなさそうだし
もしかしたら自分はあなたよりもサーバーサイド・プログラミングの経験は浅いかもしれません。 仕事で使ったのはJavaのサーバーおよびクライアントが中心で、PHPでは小規模システムしか作ったことはないですし、何十年もSEをやったわけでもありませんから。 でも、この場を荒らすようなことはしたくないというのを理解してもらえませんか? さっきも書きましたが、Javaの話はスレ違いですし。
pnCm4bpG3Y は学生時代の癖が抜け切れていないと見た。 多分、自分が偉いと勘違いしてるおぼっちゃま君なんだろう。
216 :
デフォルトの名無しさん :04/12/29 15:26:49
>>204 なるほど、よくわかりました。
そうですね、Matlab練習用にと考えていたので、とりあえずオフラインの実験で
やってみようかと思います。Javaの方も少し考えてみます。
アドバイスありがとうございました。
>>216 MATLABは金がかかるからなあ。
気をつけることだよ。
いろいろやりたいことがあるなら
自前でサーバ構築くらいできるようになっとけ。
キモいよ
MATLABに使われているJavaはヤヴァイJavaだからなー。 Mが作ったあの穴だらけの古いJavaでさ。
でも、Unix、Linux、Mac OS X版だと、 それとは違うJava VM使ってますね。
221 :
助けてください :05/01/05 00:50:53
今MATLABでむだ時間を含むスライディングモード制御のシミュレーション しているのですが何かお勧めのコマンドとかありますか?教えてください(>_<) それとMATLABコマンドのODEでのメインファイルとサブファイル(関数ファイル) のやり取りは具体的にどのように計算されているのかについても教えていただきたいです。 お願いします。
ちょっと質問の意味が分かりにくかったので、 申し訳ないのですが、こっちから質問させてください。 微分方程式の数値解析的な計算方法が知りたいのでしょうか? それとも対象関数との間の値の受け渡し方法が知りたいのでしょうか? #スライディングモードに関しては無知なので #力になれそうにありません。
223 :
助けてください :05/01/09 14:58:27
対象関数との間の値の受け渡し方法について知りたいです。 ode45を使っているのですが、これを使うときにメインファイルとサブ関数ファイル を使う必要があり、実際にシミュレーションできたのですが、この2つのファイルが どのようにして受け渡しされているか教えてください。お願いします。
ode45を呼び出すときに第一引数として自分の定義した関数を与えますが、 関数名の先頭に@マークをつけて引き渡されるので、ハンドラとして扱われます。 ode45内ではfevalでその関数が処理されます。 fevalはハンドラとして与えられた関数を実行するための命令です。 一言で言えば、ハンドラを使って関数そのものを受け渡し、fevalを使って呼び出す、ということをしているわけです。
225 :
助けて :05/01/10 02:37:29
ありがとうございます。実際に関数名に@マークをつけていろいろ試したのです がエラーが出ます。使っているMATLABがVer5.1なので…。 私が勘違いしているのかもしれません。。 ode45というコマンドがこれらの行為を自動で行っているのですか?
ode45の内部でfevalが使われていますので、 自動で行なわれる、という言い方でいいと思います。 ただ、ODEの計算可能性は定義域や初期値などに左右されますし、 ode45(ルンゲ・クッタ法)で解けない微分方程式の種類もあります。
227 :
助けて :05/01/10 10:59:18
そうだったんですか〜!勉強になります。今やっているのはode45で扱える 微分方程式で初期値や許容範囲も大丈夫です。 ode45の内部で関数がfevalによって処理されていることを確認するためには どうすればいいでしょうか? ちなみにMATLABはVer6.5にしました。
ぱっと思いつく方法だと、 自分で定義した関数の中にdisp命令を入れておく というのがあります。 function dydt = myfunc(t,y) dydt = hogehogehoge.....; disp("myfunc executed"); disp(["y = " num2str(y)]); disp(["t = " num2str(t)]); disp(["dydt = " num2str(dydt)]); のようなかんじにすると引数や戻り値なども表示できます。
229 :
助けて :05/01/10 16:16:45
ありがとうございます。もう一つ気になることがあるのですが、ode45での計算 時間を0秒から3秒で0.1秒刻みでシミュレーションしたのですが、関数ファイル がode45に読み込まれた回数が半端じゃなく多いのはどうしてなんでしょうか? いろいろと聞いてしまってすみません。。
微分方程式を一回だけ解くのに何度も関数を使用しないといけないので、 何度もfeval関数を使って違ったtとyの組み合わせを計算させているのです。 ここらへんはode45のもとになっているルンゲ・クッタ法の 教科書を読み返していただけると理解が早いと思います。 学部生のときに課題でやらされましたが、 手で計算してみるとかなり大変なのが身にしみて分かります ;-)
231 :
助けて :05/01/11 01:19:22
そうだったんですか〜!!ルンゲ・クッタ法は嫌になるほど凄い計算量ですもんね。 [t,y]=ode45('関数名',tspan,初期X) でode45が何度もfeval関数を使い異なる組み合わせ値を[t,y]に返しているということですね。ode45で実際は凄い小さい時間刻みで計算 されているけど、例えばtの刻み幅を0.1に指定してt=[0,0.1,0.2,0.3,…]とするときにはそれぞれの時間tのときの状態yを返しているのですよね? t=0.1ではt=[0.0098,0.101,0.110,…]のような値(状態値)を近似しているのですか?
すんません。 Simulink を使用しているのですが、途中でフレームサイズを変更することは 出来ますでしょうか? モデルは以下のようになっています ( 簡略化してます ) Ramdom Signal Generator => Block1 => Scope ここで、Random Signal はフレームサイズ 2048 で出力するのですが Block1 はフレームサイズ 1024 しか受付ません。 そこで Block1 の前に何かブロックを挿入して 1. 2048 のフレームを 1024 にする 2. 1024 ずつ Block1 に渡す 3. Block1 の後で 1024 のフレームを結合して 2048 にする ということをしたいと思っております。 こういう事はできますでしょうか? よろしくお願いいたします。
>>232 自己レスです。DSP Blockset の buffer を使うことでフレームサイズの
分割と結合は出来ましたが、今度は必ず最初に値が 0 のフレームが負荷される
ようになってしまいました。
この 0 フレームが付かないようにするにはどうするのでしょうか?
>>231 >されているけど、例えばtの刻み幅を0.1に指定してt=[0,0.1,0.2,0.3,…]とするときにはそれぞれの時間tのときの状態yを返しているのですよね?
そうですね。
>t=0.1ではt=[0.0098,0.101,0.110,…]のような値(状態値)を近似しているのですか?
数値解析的な解き方をしているので、ある程度の近似はしているでしょうが、ode45内部でどの状態値で近似しているのかはわかりません。
詳しく知るためにはソースコードを読むしかないでしょう。
235 :
デフォルトの名無しさん :05/01/13 18:17:21
通信をブロック図でやっているのですが結果が複素数で出てきてしまいます。 どうにか実数で出力することは出来ませんか? このままだと卒業できない・・・
236 :
助けて :05/01/17 17:40:53
そうですか〜。 わかりました。本当にいろいろありがとうございました。 また何かあればよろしくお願いします。
237 :
デフォルトの名無しさん :05/01/18 17:49:21
SimLink、ブロック図のレス見て思い出したんだけど、 MATLABでUMLを使えるプラグインないかな。
いいスレだったんだがサーバーサイド厨の荒氏が来てからさっぱりだな
はじめまして。 とある大学生です。 自分は今卒論でMATLAB使ってるんですが、 いかんせんプログラムが苦手で困ってます。 どれくらい困ってるかと言うと、 就職決まってるのに卒研のせいでダブる危機があるくらい、 リアルにピンチです。 そこの教授も放置プレーなので、何も教えてくれません。 本当に聞いても自分で調べてくださいっと言われます。 締め切りまで2週間もないのですが、もし力を貸してくれるなら、 七世代まで神として祭り上げます。 と他力本願な俺ですね・・・叩いてもらってもいいです。すいません。 しかし、就職したいのです。だれか力を貸していただけませんか? 2-D画像に離散ウェーブレット変換をかけて例えばsをa1、d1に分解し、 さらにa1をa2,d2に分解、さらにa2をa3,d3・・・ といった具合に分解していって、sとa1〜anをそれぞれ2乗平均して、 その値にLogをかけて縦軸をlog aとこ軸を2の階上として、グラフを作り、 その傾きを求めるというプログラムを作成しろとの事なのですが、 自分には何がなにやらさっぱりわかりません。 できればプログラム作っていただく、もしくは作り方を教えていただけませんでしょうか??おねがいします。
留年しろ。就職しても給料泥棒なだけだ。
>>239 おい、何も教えてくれない先生なんておかしいだろ。
授業料返してもらえ。
教授がMATLABの使い方知ってるとは限らんのでな MATLAB使ってる院生に聞け。
「〜というプログラムを作成しろ」なんてとこまで 具体的にお題を与えられないとできないんじゃ、 いいとこ実験レベル。とても卒業研究とは言えまいに。 しかもそのお題の持つ意味すらわからないのでは……。 素直に留年しなさい。
寺町にないのはたこ焼屋とフランクフルト屋と回転焼き屋だ。
>>239 卒業研究なんだから、それなりに基礎知識をつけているはずです。もしwaveletの「s」「a?」「d?」ですら意味が分からないのであれば、他の方々がおっしゃるように、もう一年しっかり勉強した方がいいでしょう。
後半部分に書かれているプログラムは、画像処理系の研究で10年ほど前から行なわれているのを見たことがありますし、IEEEをあたれば類似の手法はたくさん出てきますので、それらの論文も読んでみましょう。
246 :
デフォルトの名無しさん :05/01/21 20:38:53
HigherOrderStatisticsToolbox使ってる人いませんか?
>>239 >2-D画像に離散ウェーブレット変換をかけて(以下略)
すげえ。ここまで親切に教えてくれる教授なんて、信じられん。
ちょっと甘やかしすぎではないか?
ちょっと話がずれているついでに. 最近は卒研内容を「習っていません(だからできなくても問題ない)」なんて後輩もいるんだな. なんで研究室配属を許可しちゃっただろ(というか演習や実験の単位をあげたんだろう)…
249 :
まと :05/01/23 13:30:38
こんちは 質問です。 ファイル名を絶対パスで取ってきているのですが、 ¥が入ってなかなか使いづらいのですが、最後のファイル名だけ 取るのにはどうしたらよいでしょうか??? 絶対パスでとってくるGUIを手に入れたので便利だなと 思っていたら落とし穴です。 それを使ってファイル名を作れなくなった次第です。 どなたか。お助けを。
>>249 help fileparts fullfile
251 :
デフォルトの名無しさん :05/01/23 23:17:50
MATLABでGUIプログラミングをしていますが,handles構造体の使い方がいまいちわかりません. やりたいことは,多数のファイルに対して一括処理を施したいだけなのですが...作った関数は下記の通りです. 1. DataLoad_Callback():データ読み込み関数 2. DataProcessing_Callback():データ処理関数 3. BatchProcess_Callback():バッチ処理関数 3の関数をメインとして,1,2の順に呼び出して処理を行うものです. 1で読み込まれたデータは,handles構造体に格納して,2の処理関数へと渡されます. しかし,1で格納したデータに2の関数からアクセスできません(2の関数に入った時点で,handles構造体に格納したデータは消えている). ソースは単純化していますが,次のようなものです. #改行が多いので,分割します. なぜこのようなことが起こるのか教えて頂けないでしょうか?
252 :
デフォルトの名無しさん :05/01/23 23:19:14
ソースです. % データ読み込み function DataLoad_Callback(hObject, eventdata, handles) data = load('****.***'); handles.data = data; guidata(hObject, handles); % データの処理 function DataProcessing_Callback(hObject, eventdata, handles) % この部分でhandles.dataは空となっておりエラーが発生する data = handles.data; 処理部分(省略),結果をファイルに保存 % バッチ処理 function BatchProcess_Callback(hObject, eventdata, handles) % こんな感じで複数のファイルを読み込み,処理をしたい filename(1,:) = 'D:\work\dev\matlab\test1.mat'; : filename(n,:) = 'D:\work\dev\matlab\testn.mat'; % 各ファイルに対して処理を行う for iRow = 1:length(filename) handles.filename = filename(iRow,:); guidata(hObject, handles); DataLoad_Callback(hObject, eventdata, handles) DataProcessing_Callback(hObject, eventdata, handles) end
ちょっと待っててね。
254 :
デフォルトの名無しさん :05/01/27 01:05:41
わからん...
ですね、ちょっとわからん。 このスレにゃ答え出せる人居ないよ。自分で考えてください>251 以下何事もなかった如く進行。 担当者と話をすると、MATLABの発音がマツゥラヴに聞こえるマットラボ?マトラボ?
256 :
デフォルトの名無しさん :05/01/27 07:41:27
>>251 GUIDEで生成されたひな形を使ってますか?
もしそうだとしたら、コールバック関数を呼ぶときには
hogehoge('DataLoad_Callback', hObject, eventData, handles, ...);
ってやることになっていると思うんですが、
BatchProcess_Callbackの中ではコールバック関数を直接呼んでますよね。
それが原因になっていたりしませんか?
>> 257 できました! ご指摘の通り,関数の呼び出しを間違えていたようです. ありがとうございました.
R14になってmat ファイルのサイズがR13の時より1/10くらいになってるのだけど 一体どんな実装になったの?
R14からは文字列はUnicodeを使うようになり、 ファイルの圧縮も行なわれるようになりました。
261 :
デフォルトの名無しさん :05/02/01 16:13:36
simulinkでデータを外から入れた場合、入れたデータをビットで扱うことは 出来ないのでしょうか?教えてください、お願いします。
262 :
デフォルトの名無しさん :05/02/04 22:19:42
離散の 1 -------- 1 + Z^-1 を連続の 1 -------- 1 + S に変換したいのですが、どうしたらよいでしょうか。 関数などあれば、出来れば詳しく教えてください。 お願いします。
263 :
デフォルトの名無しさん :05/02/05 13:12:22
>>238 クライアントサイド厨はネットワーキングに疎い知ったかぶりばかりで
このスレはもとからいいスレじゃあないな。
264 :
デフォルトの名無しさん :05/02/05 13:16:54
>>241 教えてくれないといより
プログラミングスキルが低い教授なんだろ。
たいていの場合、教授よりもIT業界で
プログラミングだけで喰っていける実践経験のある人間のほうが
そういうことには強い。
教授は新しい技術にはついていけず数学しか知らないというのが実体だよ。
教授の中でも特に50代という団塊の人間にはコンピュータが苦手な連中が多い。
古い技術にとりつかれて新しいものになかなか鞍替えできない変化に弱い人間
なだけに彼ら教授陣の能力も衰えてきている、
265 :
デフォルトの名無しさん :05/02/05 13:21:08
>>252 > data = load('****.***');
> filename(1,:) = 'D:\work\dev\matlab\test1.mat';
> :
> filename(n,:) = 'D:\work\dev\matlab\testn.mat';
ちゃんとファイル分割しているかしらんが
もししていないならこんなハードコーディングはおすすめできんな。
ソースコードを読む側の立場になったら読むだけでも腹が立つようになってくるぞ。
ほら、みんなsageようぜ。 上の方にいるからまた変なのが来た。
すいません、今くそでかいデータファイルを扱っているのですが 処理が長くて困っています。 で、↓のfor文の処理が長いようなのですが 高速化する方法ないでしょうか? for i = 1:(X) tmp(i,1) = moto_file(i+(10*A+3),1); end 読み込んだデータ(mot_file)の10*A+3番目以降のデータをtmpの中に そのまま移行させたいのです... よい方法をご存知の方がいらっしゃいましたら なにとぞご教授お願いします。m(_ _;)m
あ、すんません 上のmoto_file=mot_fileです
早くなるかどうかはわからないけど tmp=moto_file((10*A+3):end); でどうだ? tmpは消え去るけどな。 それか、moto_fileをいじってもよければ moto_file(1:(10*A+2))=[]; で、10*A+2までがデリートされる
ありがとうございます! 早速試してみます
す!すごいっすわ! めちゃめちゃ早くなりましたよ! 数十分かかってたのが数秒ですよ! ありがとうございました!!!!
273 :
デフォルトの名無しさん :05/02/08 21:07:54
matlabでM系列信号発生させてスピーカの周波数特性を測りたいのですがどうすればよろしいのですか?
>>272 おまいはサイバーネット社のまわし者か?
275 :
デフォルトの名無しさん :05/02/08 21:22:35
MATLABでクラスのカプセル化できんの?
>>274 ドキュメントばっかり読んでるMatlab廚です。
277 :
デフォルトの名無しさん :05/02/09 10:10:33
Finding a transfer function... -------------------------------------------------------------------------------- The frequency response of a linear time invariant system has been measured and can be seen in the attachment file below. A feedback element with a transfer function, H(s), is to be chosen so that the sysytem steady-state error to a unit step input is equal to 0.07. What is a suitable transfer function to achieve this??? これで、frequencyとmagnitudeとphase angleの数値をざっと各30個ずつ ぐらいもらってるんだけど、まったく分かりません。どういう過程で transfer functionを求めていけばいいのでしょうか? matlabを使ってtransfer functionを求められると聞いたんですけど、どういう風に数字を入れていけば いいのでしょうか?
>272 う、英語文章苦手なんですけど がんばって読んでみます。 情報ありがとうございますm(_ _)m
>>273 M系列信号を計算することはMatlabでできますが、
それを再生してマイクで拾って録音して、という部分は別のシステムを使った方がラクでしょう。
そのあとで録音データにFFTをかけて周波数特性を確認するのはMatlabでできます。
こんな流れなんですが、周波数特性の分かっているマイクとアンプを使わないと、スピーカーだけの周波数特性は計測できません。
完全なスピーカー特性をはかるには専用のデバイス類が必要になるのでかなり大変です。
280 :
273 :05/02/10 05:09:23
>>279 騒音計使うので平気なのです
アンプもフラットなので・・・・
その得られた周波数特性から逆フィルタを求めて
ソースなりに逆フィルかませるということは可能ですか?
スピーカーの線形歪みの部分であれば、 別ソースにフィルタをかけることも可能です。
282 :
デフォルトの名無しさん :05/02/10 10:09:51
xpctargetについてなのですが、 contec製のADボードを使うと、入力が恐らく0.25倍、出力が2倍になってしまいます。 バージョンは2.7ですがMATLAB6.5付属の物でも同じ症状がでます。 インターフェース製のADDAボードだと問題無いのですが、これはバグか何かなのでしょうか。 0.25倍と2倍というのもテスターによって測ったあやふやなものなので詳細がわかりません。 知っている方いらっしゃいますか?
283 :
282 :05/02/10 10:11:11
申し訳ありません、詳細を書き忘れました。 使用しているボードはcontecのAD12-16Eです。
こんなスレがあったとは(゚∀゚)
>>232 すごい遅レスだけど,Unbufferで一旦フレームベースのデータを変換して,
その後でBufferで1024のフレームサイズに直せばいけるかな?
漏れはフレームベース使ってないから間違ってるかもしれないけど・・・
最初に0がつくのは初期値が0になってるからだと思われ。
>>235 Complex-to-Real Imagブロックで実数虚数部に分けるか
absブロックで絶対値取るかだね。
MATLABはともかくとして,Simulinker少なっ
285 :
デフォルトの名無しさん :05/02/21 13:43:18
ムービーにX軸とY軸を含めるにはどうしたらよいのでしょうか? MetlabはVer6.1です。
286 :
273 :05/02/22 17:51:22
で、具体的にどうやればいいんですか?
>>273 具体的にと聞かれても・・・( ´Д`;)
適当にプログラム組んでみて,上手くいかないところを聞くのが筋では?
全部プログラムを作ってくれ,というように聞こえるけど・・・
スレになかなか来られなくて申し訳ない。 やらなきゃいけないことが重なっていっぱいいっぱいで(r
289 :
デフォルトの名無しさん :05/02/26 09:10:36
>>285 オフスクリーンでやれば出来ないことはないが、サイズが指定できないので注意
matlab7.0.1でGetting startedに記載されている簡単なコマンドを実行しました。 >> a = [ 1 2 ]; >> plot(a) ??? Undefined function or variable 'lineseriesmex'. Error in ==> lineseries at 19 lineseriesmex; とつれないお返事。このエラーにどう対処したらいいのでしょうか?
>>290 遅レスだけど,Ver6.5.1だと普通にプロットできますた。
Ver7だとできないのかな・・・・
>>273 遅レス申し訳ない。ようやくちょっと時間ができました。
十分な長さのノイズ信号を再生した録音データには全周波数帯での応答が含まれています。
その録音データにFFTをかけてマグニチュード応答を割り出し、
それをもとにフィルタを作ります。
フィルタを作るにはYule-Walker法(yulewalk.m)なんかがラクチンです。
293 :
デフォルトの名無しさん :05/03/09 17:18:18
>>292 Numerical Recipe 印C
をみろ
何に関してNRを見ればいいでしょう? FFTのところか乱数生成のところ?
matlab 7 で、capture がなくなったみたいなんだけど、代替は何?
297 :
デフォルトの名無しさん :05/03/16 11:16:41
UNIXないのmatlabをWindowsのsshから使っています。XWindowは使えないのですが、この場合、ムービーをfigureWindowなしで作成できるのでしょうか?
mexをc++でwindows unix両方でコンパイル可能な形書くのって 難しい?
>>297 このスレの過去に似た話が出てきたのでチェックすると良いかもしれません。
>>44-48 あたりです。
>>298 意外に簡単です。
ただ、システム依存する部分はちょっと難しいです。
自分は、多チャンネル音声再生をマルチプラットフォームで
実行できるようなmexファイルを作ろうとして挫折しました。
mexのdll (window)を Matlabじゃなくて普通のCのプログラムから呼び出すには どうしたらよろしいのでしょうか
302 :
デフォルトの名無しさん :05/03/19 12:29:36
matlab7は何が新しくなったのですか?
主に、激しく処理が重くなった。
matlab で、 f = @(x) x みたいなことは、octave では出来ないんでしょうか?
305 :
デフォルトの名無しさん :2005/03/30(水) 09:52:44
情報処理やってる人に質問なんですが、 std=sqrt(varience); x=std*randn(1,10)+mean*ones(1,10); この公式分かる人いますか?
306 :
デフォルトの名無しさん :2005/03/30(水) 11:37:25
307 :
デフォルトの名無しさん :2005/03/30(水) 12:49:26
すいません、ノイズのstadard deviation (偏差?)を見つけるコマンドは 何ですか?
308 :
デフォルトの名無しさん :2005/03/30(水) 13:08:51
例えば下のようなコードを打ち込んでstd(x_10)で偏差が出せると思った んですけど、出ません。どなたか何故だか分かりますか? >> m=10; varience=9; stdd=sqrt(varience); %length_10 x_10=stdd*randn(1,10)+m*ones(1,10); subplot(4,1,1);plot(x_10) %length_100 x_100=stdd*randn(1,100)+m*ones(1,100); subplot(4,1,2);plot(x_100) %length_1000 x_1000=stdd*randn(1,1000)+m*ones(1,1000); subplot(4,1,3);plot(x_1000) %length_10000 x_10000=stdd*randn(1,10000)+m*ones(1,10000); subplot(4,1,4);plot(x_10000) >>
みんなが分かるような質問をするとより早く答えが返ってきますよ。 とりあえず「平均mu分散sigma^2の正規分布に従う乱数列が作りたい」という質問だと想定して答えますと、以下のようなプログラムができます。 mu = 10; % 平均 variance = 9; % 分散 sigma = sqrt(variance); % 標準偏差 x = randn(1, 10000); % 平均0.0分散1.0の正規分布乱数を生成 x = (x * sigma) + mu; % 平均mu分散sigma^2に移動 hist(x, 50); % ヒストグラム表示 この後、std(x)やvar(x)で指定した標準偏差や分散値に近い値になっていることが確認できます。
310 :
デフォルトの名無しさん :2005/03/31(木) 04:01:25
どう聞いたらいいのかさえ解らない状態と思われ
まだその1だし、蓄積を続けるしか無かろうと思う
mex にMFC使ったGUIをくつっけたものって動くよね?
今日初めてMatlab知ったよ。 面白そうじゃん。
314 :
デフォルトの名無しさん :2005/04/27(水) 09:00:11
実験でこれ使うよ
この板には珍しく、面白そうなスレ発見
matlab の関数って、値渡しですよね? 大きな行列を使った関数をたくさん呼んでるんですが、 値渡しのコストが大きそうな感じ。 値渡しを避けるには変数をglobalにするしか方法はないんでしょうか?
値渡しっていうか、ポインタ参照した後に 演算がコピーしてるじゃないの? コンパイラの最適化の話じゃない?
matlabって学校が購入する際いくらくらいなんですか?10ライセンス分で。 購入を検討しているのですが。
>>318 サイバネットに聞け。マジで。
toolboxの組み合わせが膨大で、ここで答えられる範疇を超えてる。
>>318 本国だと学生向けアカデミックパッケージがだいたい100ドルくらいだけど、
グループライセンスはウェブには価格が出てないね。たいていは大学全体での
サイトライセンスなんじゃないかな。
そうでもない。 MATLABのグループライセンスの場合、 LAN内にライセンスサーバを一台立てて、同時使用数とかのチェックが入るから 大学全体だと数が多すぎて微妙だったりするので 研究室単位でライセンスを買ってるところも結構ある。
>>321-322 もれの研究室がライセンス持っているみたいだけど、他の研究室は持ってないみたい。
ちなみに、研究目的で自分のノートPCにインストールして、自宅でするのは合法?
ってライセンスの組み合わせによって変わるか…
サイトライセンスの場合、そもそも自宅だと認証サーバにつなげないから 起動できないんじゃないか。 #漏れのノートにも入ってるが研究室でしか使えん。 スタンドアロン(認証サーバにつながない)ライセンスのがあるなら インストールしてあるPCの数がそのライセンスの数までなら合法 それより多くのPCに入れるとたぶんアウトかな? 一度ライセンスをよく読んでみるのお勧め。
>>323 どうもサンクス!
教授がどうもそういうのに疎くて…
一度よく読んでみるよ。
matlabのまとめページとかはないのですか?
ぐぐってヘルプ見ようとするとことごとく The MathWorks product documentation you have requested is no longer available. なのだが、ヘルプはどこへ行ったのでしょうか?
すいません、プログラムと関係ないのですが質問させてください。 最近、研究室でMATLABを使っているのですが、エラーが出てきた時に音が出るのを 消したいのですが、どうしたらよいですか?コントロールパネルからではパソコンの本体から出る「プッ」 なんていう音が消せないのです。エラーが出るたびにほかの人の注目を浴びてしまいます。。。 よろしくお願いします。
330 :
デフォルトの名無しさん :2005/05/10(火) 19:24:43
連投すみません。 単位円をx軸に投影するプログラムを作るのですが。 ラジアンをtで設定し、x=cos(t),y=sin(t)をplot(x,y)で円をプロットするところまではできたのですが。 この後、radonというコマンドを使って投影をするそうなのですが、そっから先に進みません。 radon(???)の?の部分に何を入力したらいいのか分からないのです. すいません、よろしくお願いします・・・。
331 :
デフォルトの名無しさん :2005/05/10(火) 19:53:02
332 :
デフォルトの名無しさん :2005/05/12(木) 17:51:39
titleを常に図の下側に表示させるように変更したいんですが・・・。 できます?
全体の領域をzeros(256,256)で与えた後、半径256点の円の内側の領域の強度を1 外側を0とするにはどのようなプログラムでできるのでしょうか?
>>333 これは
>>330 のradonの使用法が分かった上で、単位円をradonが使用する形式に書きたい、ということでいいですか?
単に「強度」といわれても、一般的にはさっぱりわからないのです。
もっと分かりやすい文章にしてくださいね。
以下のプログラムで半径256点の円が描けます。
N = 256;
I = zeros(N);
for row = 1:N
for col = 1:N
if (row/N)^2 + (col/N)^2 < 1
I(row, col) = 1;
else
I(row, col) = 0;
end
end
end
imshow(I);
>>332 title命令はtext命令に対するラッパーのような動きをするので、
textのプロパティをそのまま使用できます。
h = title('hogehoge');
set(h, 'Position', [x y]);
で位置を変更できます。
336 :
デフォルトの名無しさん :2005/05/15(日) 14:44:19
figureウィンドウをある程度大きくすると、movie2aviコマンドでエラーが出るのですがこれは仕様ですか?
どんなエラーメッセージが出ているのですか?
338 :
デフォルトの名無しさん :2005/05/16(月) 01:12:48
Matlab で x= dir() みたいに、dir の返り値をとって変数に代入できますが、 octave で同じことをする方法を教えて下さい。 (そのままだと右辺が未定義として怒られる)
はじめまして。 LMIを扱った問題について質問させてください。 あるスカラ変数τ*(タウスター)があるとします。 この時 (0<=τ<=τ*) の範囲で、システムを安定させる行列変数Pを求めたいのです。 この場合どのようにLMI式を立てればよいのでしょうか。 whileループでひたすらτ*の値を増加させていくしかないのでしょうか。 できればきっちりと限界値がわかるようにMATLABで計算してもらいたいのです。 しかしlmitermでは変数が一つしか扱えません。 何かうまい使い方があるのでしょうか
こんにちはMATLAB超初心者です。 行列の積分の事について質問させて下さい。 y=4*x+yなどの積分、たとえば ∬(4*x+y)dxdy (1<x<3,3<y<7) などはq = dblquad(fun,xmin,xmax,ymin,ymax)でもとまるのですが 行列の積分、たとえば |∬(4*x+y)dxdy、∬(*x+y)dxdy | |∬(2*x+y)dxdy、∬(*3x+y)dxdy | 全て範囲は(1<x<3,3<y<7) の2行2列の積分を一気に求める方法(関数)はないのでしょうか。 誰か知っている方ご教授願います。よろしくお願いします。
341 :
デフォルトの名無しさん :2005/05/21(土) 09:09:47
>>325 教授の知り合いで信号処理に詳しい他の教授はいないのか?
他の研究室、大学なら何かしらMATLABについて詳しい香具師がいると
思うのだが。
音響工学、画像工学の研究室なら大抵つかっているし
MATLABにてth1,th2,sをシンボリック変数として計算をしたところ、 (s^2+4*s)/s/(s-th1)*th2 という解が求まりました。 まずはこの式を (s^2+4*s)/(th2*s^2-th1*th2*s) というsに対する項べきの順に整理して、その係数を 分母の係数 [1 4 0] 分子の係数 [th2 -th1*th2 0] のような行列に抽出したいと思っているのですが、うまく行きません。 どなたかご存知の方がいらしたら方法を教えてもらえないでしょうか?
吾は Matlab フルバージョンを使用している。
せっかくだから matlab で *.wav の編集や、画像の編集技術を
学びたいと思っているのだが、それ系でなにかいい website はないか?
____________
"Why the future doesn't need us." by BILL JOY, the cofounder and Chief Scientist of Sun Microsystems
http://www.wired.com/wired/archive/8.04/joy.html
344 :
デフォルトの名無しさん :2005/05/23(月) 21:07:55
MATLAB でクラスを書いています。 クラスに静的メンバ関数を実装することはできるでしょうか? クラスで実装しているメンバ関数の間で、 簡単なユーティリティ関数を共有したいのですが、 どのようにしたらよいでしょうか? よろしくお願い致します。
>>343 「MATLAB によるxxxx」という本がたくさん出てるよ。
マルチメディア処理の本とかもあったな。
レンダラーをOpenGLにするとメモリに振った文字がつぶれてしまうのですが、これは仕様でしょうか? OpenGLを使わないときれいに出ます
347 :
デフォルトの名無しさん :2005/05/24(火) 14:49:19
OpenGLを使うと 警告: OpenGLのバージョンが認識できません。デフォルト1.0を利用します. という警告がグラフィックを操作するたびに出ます。この警告を出ないようにする方法はないでしょうか?
348 :
Zeno ◆5nZQbNmQPs :2005/05/24(火) 16:06:15
349 :
デフォルトの名無しさん :2005/05/24(火) 16:35:29
MATLABはver.7になってから オブジェクト指向のサポート度数はあがったの? PHPがver4からver5にアップグレードしたときに オブジェクト指向のサポートが非常に強力になったように。
351 :
Zeno ◆5nZQbNmQPs :2005/05/25(水) 16:40:36
誰かRASP知っている人いませんか??
354 :
デフォルトの名無しさん :2005/05/26(木) 10:42:06
OpenGLのバージョンが取得できないと警告が出ます。 このメッセージを消すにはどうしたらよいでしょうか?
警告の出ないハードで動かせばいいじゃないか
356 :
デフォルトの名無しさん :2005/05/26(木) 16:32:12
Radeon9700ですが、警告が出ます
警告の出ないハードで動かせばいいじゃないか
358 :
デフォルトの名無しさん :2005/05/26(木) 16:43:09
どれならでない?
発売元に問い合わせればいいじゃないか どうしようもないアフォだな
普通、仕入れた場合、クライアントの一番近い各支社の人間が担当として付くはずだがね
361 :
デフォルトの名無しさん :2005/05/27(金) 08:47:41
MATLABはVer7になってもオブジェクト指向言語としては 貧弱なのか・・・・・
362 :
Zeno ◆5nZQbNmQPs :2005/06/01(水) 22:16:29
貧弱である。 _________________ If T is consistent, T !|- G_T. If T is ω-consistent, T !|- ¬G_T. -- Kurt Gödel
363 :
デフォルトの名無しさん :2005/06/02(木) 16:05:46
364 :
デフォルトの名無しさん :2005/06/03(金) 00:23:23
Cで書いたコードを組み込めるようなのですがやり方がよくわかりません。 どこかに解説したページはありませんか?
365 :
デフォルトの名無しさん :2005/06/03(金) 14:39:45
matlabプログラムに実行引数を与える方法を教えてください
画像に簡単にフィルタなどを適用する方法はないのでしょうか? フィルタのコードを書くしかないのでしょうか?
368 :
デフォルトの名無しさん :2005/06/05(日) 14:27:49
contourで0の値のところだけ線を引きたいのですが、 [C,h] = contour(x,y,z,0); とやるとうまくいきません [C,h] = contour(x,y,z,[0 3]); のようにしてやらないとダメなのでしょうか?3のところにも余分な線が出来てしまっていやなのですが
>>364 マニュアル読めば分かるよ。
loadlibrary だよ。
loadlibrary で、外部ライブラリと、その関数を宣言したヘッダーを読み込んで、
callib するだけだよ。
>>365 どういうこと?
func(arg1, arg2)
でいいんだろ?
371 :
デフォルトの名無しさん :2005/06/07(火) 15:09:33
jetのカラースケールを自作のプログラムでも実現したいのですが、どのようにRGBを分布させればよいのでしょうか?
372 :
デフォルトの名無しさん :2005/06/14(火) 18:33:04
256点に対称な方形波をフーリエ変換した時、虚数が10^ー14程度の数値で出てしまうのですが これは誤差としてみなしてよいのでしょうか?
>>372 その包茎波の大きさは何よ。
そもそも、MATLABとはいえ所詮有限桁数での演算シミュレーションなんだから
こんな得体のしれないところで訊くまでもなく、ちょっと考えりゃ答えは分かるだろ。
374 :
デフォルトの名無しさん :2005/06/17(金) 23:27:20
MEXファイルの作り方/書き方に関する良い解説の紹介を願います. 良いというか,以下の条件を満たすような説明. ・豊富なサンプルの提示 ・落し穴や注意点の説明 ・Win/LinuxやC/C++/Fortranといった違いに触れてある解説 ・できれば日本語 サイバネットのサーバって遅いし,力が入っていない気がするし… お薦めページを御存じの方,よろしくお願いします.
ヘルスにあってもおかしくない名前だよなぁ>MATLAB
連続系から離散的にデータを取り出したい(A/D変換)のですが、 simulinkでのやり方がわかりません。 わかる方がいらっしゃたら、ご教授お願いします。
>>376 Matlabが手元にないんで不明瞭な回答になるけど、
「0次ホールド」「zero order hold」「hold」「A/D」などの
文字がSimulinkの要素選択画面にない?
あったならば、それが正解。
>>377 さん
こちらの手元にもないんですが、
確か「zero order hold」っていうのはありました。
これは、A/D変換ではなく、D/A変換だと聞いたのですが
間違っていますか?
>>378 漏れSimulinkerだから適当にモデル説明してくれれば分かると思う。
連続系から離散的にっていうのは,例えばサイン波形をサンプリングとかそういう感じ?
>>379 おぉ、ありがたいです。
僕もよくわからないのですが、Monodモデルです。
連続系から離散的にっていうのはおっしゃる通りです。
よく分からないのか( ´Д`;)
>>377 氏が言うように,zero order holdか,別にGainでもいいんだけど,
ブロックを入れてサンプル時間を設定すればいい。
サンプル時間についてはそっちの設定が分からないからなんともいえないけど。
試しに1くらいでやってみて,それで駄目なら変えてみるとかね。
382 :
376 :2005/06/24(金) 22:38:24
>>381 サソ
適当に入力にランプ入力入れて zero order hold はさんで
Scopeで見てみましたところ、それらしきものがでてきました。
どうもありがとさんです!
で、疑問に思ったのですが、
どっかから適当に入力とってきてそれをA/D変換して
その値に適当に処理(フィルタなど)を施してD/A変換して
入力を取って来たループに戻したいのですが、
こういう事はできますでしょうか?
zero order holdを通したら、
一気にA/D変換→D/A変換をセットでしているような気がして
A/D変換とD/A変換の間に処理を施す事ができないのでは?
と思ったのですが、どうなんでしょう?(´・ω・`)ヨクワカラン
>>382 381だが,A/D,D/A変換は正直よく分からない部分もあって・・・('A`)
A/D変換はできるけど,D/A変換は完全に出来るかどうかは疑問。
っていうか,Simulink上では一見アナログに見える波形も,実はデジタル波形な希ガス。
サンプル時間を非常に短くとっているので,アナログっぽく見えるだけのような・・・
まぁ,一応モデルを作ってみてそれっぽい動作は確認できた。
適当なメアドかメッセの番号,あとはうpろだ探してくれれば送るよ。
>>383 さん
そうなんです。D/A変換がよく分からないんですよね(^ω^;)
モデルわざわざ作っていただきありがとうごじまます。
メール欄のとこのアドにお願いします。
手元にMATLABがないので確認は月曜日になりますが…
すいません。肝心なところ間違えましたorz ×ありがとうごじまます ↓ ○ありがとうございます でした。失礼。
>>384-385 OK,明日か明後日には送っておく。
ところでふと疑問に思ったんだけど,A/D・D/A変換する必要があるの?
どんな処理か分からないけどさ。
MATLABのソフトって回線繋いでる時って監視されてるの?
>>387 ちと意味がわからないんだが・・・
ネットワークライセンスのことかな?
>>388 都市伝説かなんかでPhotoshopには個人データを送信しているとかいないとか
噂されていますよね?そういう小細工みたいなことしこんであるのかなと思いまして。
まあ、ライセンス違反をした時ばれるかってことです。
>>389 ライセンス違反してるの?( ´Д`;)
>>390 いえ、こういうツールって高いじゃないですか?
だから、高価なツールにはみんな変な細工されてるのかなと思いまして(゙ `-´)/
開発者じゃないからワカンネ 大丈夫ジャネーノ?
>>392 了解っす(゙ `-´)/
では開発者が現れるまで待ち続けるぞー!
etherealとかでパケットキャプチャしたら分からないかな?
Algebraic state in algebraic loop containing block computed at time 0 is Inf or NaN. There may be a singularity in the solution. If the model is correct, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances) と表示されて翻訳してみたら、「時0に計算されたを含む代数的な輪における代数的な状態は、 InfかNaNです。 解決策には特異性があるかもしれません。 モデルが正しいなら、ステップサイズを減少させてみてください。 (固定ステップサイズを減少させるか、または誤り寛容をきびしくするのによる) 」と表示されたのですがどうすればいいNO_?
NaNってのは例えばlog(0)とか,A÷0なんかみたいに計算できない時に出る値。 Infは無限大なんだけど,値が発散してるってことかな?
MATLABでプログラム組むことになったんだが他の教授にバカにされたりしないかなぁ 時間が余ってからCで作り直すか
MATLABはMatrix Laboratoryの略らしいけど, その名の通り行列計算はかなり楽だよ。 たとえば,ある行列Aの逆行列を求める時は,Cは複雑なアルゴリズムが必要だけど MATLABはinv(A)だけで出る。 グラフ描画も楽だし,複素数も普通に扱える。 欠点はアプリが重いってことかねぇ・・・
399 :
あああ :2005/06/29(水) 00:35:17
次のプログラムをLittle EndianのCPUで実行したとき、
それぞれcmdとdataのメモリの内容、メモリから読み出した直後
のレジスタの内容、実際に出力される内容はそれぞれどのような
値になるでしょう?
char cmdreg = CMD_PORT, datreg=DATA_PORT;
unsigned int16 cmd;
unsigned int32 data;
cmd=0x87cd , data=0x20030719;
outw(cmdreg,(cmd & 0xff00)
>>8 | (cmd & 0xff)<<8);
outl(datreg, data);
>>396 そうみたいです。thx。
それで固定ステップサイズを減少させるというのは
どういった意味があるんでしょうか?
>>397 なんで教授にバカにされるの?
どんなモデルかわからないから何とも言えないけど, 発散してるってことはどこか係数か何かを小さくしてみるとか。 それくらいしかアドバイスデキネ
>>401 いろいろ試してみます。ドモー(*^▽^*)
>>397 まず、ほかの人の論文をたくさん読んでみ。
結構MATLABで処理した結果を論文に載せてる人は多いし
そこまで気にすることじゃないだろう
レンダラーをOpenGLにすると文字がつぶれてしまうのですが何か良い解決方法はないでしょうか?
>>404 レンダラーをOpenGL以外にすれば良いです。
406 :
デフォルトの名無しさん :2005/06/30(木) 14:24:38
407 :
デフォルトの名無しさん :2005/07/04(月) 11:44:58
ムービーを作成する際に、ムービーの画像の大きさを指定したいのですが、どのようにすればよいのでしょうか?
>387- あたり。 うちはファイアウォール内でライセンスサーバ動かしていますけど、 何の問題もなく使えていますよ。 もちろんヤバいことはしていない。
>397 「数値シミュレーションをやりたい!」という目的を忘れてCの Segmentation Faultをデバッグするのが好きな人には馬鹿にされるかも。
410 :
デフォルトの名無しさん :2005/07/18(月) 10:56:57
contourプロットで線の太さを指定する方法を教えてください。 'LineWidth',5などを追加しても、認識してくれません。
411 :
デフォルトの名無しさん :2005/07/20(水) 16:33:59
三次元の固有値問題を解きたいのですが、よくわかりません 質量と剛性なら[d,v]=eig(M,K)でできたんですけど、粘性まで 入ってくるとどうもエラーが... 詳しい方お願いします。
緯度、経度を軸に地図を描くにはどうしたらいいのですか? また緯度経度データを読み込んで地図上にプロットしたいのですが。 よろしくお願いいたします。
Mapping Toolbox使うべし。
dual モニターの環境でplot使うとおかしくならない?
fsolveに与える関数について質問です。 関数f(x,y)をfsolve(@f,x0)のようなことをしたいんですが、 yはgivenで、xが変数なんです。 yはどのように指定したらいいでしょうか。
416 :
415 :2005/08/02(火) 01:45:48
解決しました。 x = fsolve(fun,x0,options,P1,P2,...) ですね。
>>415-416 自分も分からなくて困っていたことがありました。
ありがとうございました。
418 :
デフォルトの名無しさん :2005/08/09(火) 09:37:56
マトラブで周波数応答を求めたのですがそのある部分(例えば100Hz〜16kHz) の特性F(w)に対してその逆関数1/F(w)を求めることとかって可能でしょうか?
>>418 逆関数だったら複素数(ゲインと位相)の関数になるでしょ。
周波数応答って全単射じゃないから逆関数は一般には存在しない。
420 :
418 :2005/08/13(土) 16:55:36
任意周波数振幅特性のフィルターを設計したいんです。 そうするとスピーカの振幅特性の逆関数が判らないとできなくないですか?
>418 板違いじゃない?(Matlabじゃなくって数学の質問のような気がする) 例えば、 G(s)=e^{sL}, sは虚軸の上半分, Lは十分大きな正の数 の逆関数なんて存在しないでしょ。周波数を100Hz〜16Hzに限定しても。
ヒント:基本ができてないけど、道具はある
423 :
デフォルトの名無しさん :2005/08/14(日) 07:33:42
結局、あんたも判らないわけね。。。
MATLAB頼りの奴って、MATLABが使えない環境では、 どうするつもりなんだろうか。
425 :
デフォルトの名無しさん :2005/08/14(日) 14:55:14
Matlabが使えない環境ではJavaで書きます。 それがダメならPython。最終的にはC言語。
boost::numearics::ublas を使う
427 :
デフォルトの名無しさん :2005/08/22(月) 05:26:11
最小二乗法みたいのもを直線ではなく別の関数で行いたいのですがどのようにやったらよいのでしょうか?
428 :
デフォルトの名無しさん :2005/08/22(月) 07:13:00
★★★ また韓国、意図的な、でっち上げ反日報道 ★★★ 韓国の大手テレビ局が、8月15日のニュース番組で報道した「旧日本軍による生体実験」と称する映像が、実は真っ赤なウソ、中国映画の盗用でっち上げだった。 韓国のマスコミは反日キャンペーンで、この種のでっち上げ「歴史歪曲(わいきょく)」をよく行うが、今回の事件で 「日本糾弾ならウソも平気」 といった腐敗体質が、改めて確認された。 番組では戦前、旧日本軍の細菌戦研究731部隊の生体実験の様子を「白黒の記録フィルム風」に紹介したが、視聴者から「映画の場面と同じだ」と抗議の声が上がり、悪質なでっち上げが露呈した。 この中国映画はカラー作品だが、テレビでは本物に見せかけるために「白黒」に変えられており、意図的なでっち上げであることは明白。 日本の民主党(岡田党首)は、日本国内に数十万人いる反日的な在日韓国・朝鮮人に日本の選挙権を与え、民主党に投票させようと画策している。 在日韓国・朝鮮人の大部分は、戦後のドサクサで密入国した不法滞在者とその子孫だが、強制連行されたとウソをついて被害者のフリをし、日本国内に居座って、毎月二十数万円の生活保護をもらい、遊んで暮らしている。
429 :
デフォルトの名無しさん :2005/08/22(月) 08:44:31
誤爆スマソ
430 :
デフォルトの名無しさん :2005/08/22(月) 11:45:37
>>427 Statistics Toolbox内にnlinfitっていうのがあるから、それを使うべし。
431 :
デフォルトの名無しさん :2005/08/24(水) 12:02:45
matlabである値からある値までを等分割して配列に格納することってどうやればできるんでしょうか? 例えば 100から10000までの値を10000分割して格納したいのですが・・ よろしくお願いします。
linspace(100, 10000, 500) 100〜10000を500分割。 ちなみにlogでいきたければlogspaceという関数もあり。
433 :
431 :2005/08/25(木) 21:52:41
>>432 うわ、そういう風な関数あったんですね。
こんな風に書いてました。
nは分けたい数です。
ありがとうございました。
A = min;
max - min
for i = min + (max-min)/n : (max-min)/n : max;
A = [A i];
end
内部的には同じことやってると思うので、 今まで通りやっても大丈夫だよ。
435 :
デフォルトの名無しさん :2005/08/30(火) 10:18:07
データを読み込む時にload関数を使いますが, データの最初の2行の読み込みを飛ばしたい時はどういう風にすればよいですか?
load命令はもともとMatlabのsave命令を使って保存したものを読み込むための命令。 「最初の二行を飛ばしたい」と言ってるので、おそらく自分で用意したテキストファイルやCSVファイルを読み込もうとしているんじゃないかな? そういうときはdlmreadやcsvreadという専用コマンドを使った方がいいよ。 A = dlmread('hoge.txt', ':', 2); とやれば、hoge.txtの中にあるコロン区切りのデータを最初の二行を飛ばして読み込んでくれる。
斜面スライスの方法がわかりません f(x,y)=ax+byのような平面スライスの方法を教えていただけないでしょうか
438 :
437 :2005/09/08(木) 11:11:57
自己解決しました、申し訳ありませんでした
439 :
名無しさん@そうだ選挙に行こう :2005/09/11(日) 12:00:52
Matlabってサイバネット(やMathworks)のページのマニュアルが結構充実していると思う。 でも、サイバネットのサイトって鯖が遅過ぎなんで使えん。 そう思っているのってボクだけですか?
サイバネットはサポートが神だよ。
質問してもすぐ返事が返ってくる。
漏れの使ってるハードウェアのサポートが他の会社に移った途端,
返事が返ってこなくなって実感した('A`)
>>440 関係者乙
>>440 ( ´д)ヒソ(´д`)ヒソ(д` )
ニューラルネットToolboxを使ってsomを作成しているんですが,somについてわかる方設定等を教えてください.
matlabってsom入ってるんだ・・・ 知らんで0から作ってしまった
445 :
デフォルトの名無しさん :2005/09/24(土) 04:34:35
画像からメトロノームの針の位置を取り出し(x座標の時系列), FFTをかけることで周期を抽出しようとしています. また,途中でテンポが変化するため,窓のサイズを小さく取り, 時間方向に少しずつずらしていくことで,周期の変化を見ようとしています. FFTの理解は十分でないのですが,こうした解析を行うために, スペクトログラムが適しているのではないかと考えました. つまり,パワースペクトルの時間変化をみたいということになります. こういった経緯で,下記のようなプログラムを書いたのですが, なぜかゼロ周波数付近に大きなピークが観測されてしまいます. データは明確な周期性があり,他人のCプログラムで実行したところ, ゼロ周波数付近にはピークが観測されず,想定された位置にピークが観測されています... 問題点がわからず悩んでいます. なにか心当たりがある方がいらっしゃれば,ぜひ教えてください. よろしくお願いします. ------[以下,ソース] signal = load('hoge.txt');% データ数は約200点 FFT_domain = 32; Hz = 20; datNum = length( signal ); % specgramの使い方 % specgram(データ,窓長,サンプリング周波数,窓関数,オーバーラップの長さ) specgram( signal, FFT_domain, Hz, [], FFT_domain-1 );
446 :
デフォルトの名無しさん :2005/09/24(土) 04:45:54
コードで例えば、polyvalやdeconvはどうやって書かれているか見る 方法はありますか?
type polyval type deconv
>445 DC成分って、つまりはx時系列データの平均値みたいなもんでしょ。 x = x - mean(x); ってやってからspecgramに渡したらどんな感じ?
449 :
445 :2005/09/24(土) 13:36:24
>448 アドバイス通りにやった後,absをかけるとなかなかうまく抽出できました. ありがとうございました!
450 :
デフォルトの名無しさん :2005/09/24(土) 15:02:03
>> 447 >> help thanks
451 :
デフォルトの名無しさん :2005/10/04(火) 14:43:18
すいません、MATLABというより、プログラミング初心者なのですが。 ゼロ割という警告はいったい何を意味してるのですか?
452 :
デフォルトの名無しさん :2005/10/04(火) 15:19:16
ゼロで除算をしようとしたためにエラーになった、ってことです。 (たとえば 5.5/0 は不定なのでゼロ除算エラーになります)
算数レベルの話じゃないのか・・・ これがゆとり教育の(ry
>>452 不定でもエラーでもないぞ。
不定とは、Cで未初期化メモリにアクセスしたときとかで、
MATLABでは起こらない。
MATLABではIEEE演算を行い5.5/0はInfになるので、
エラーは起こらない。
やってみればわかるが、エラーではなく警告が出てるはず。
455 :
デフォルトの名無しさん :2005/10/05(水) 15:40:46
MATLABのguide使って任意の画像表示してみようと思うんですが、 どうやって表示させればいいでしょうか?
456 :
デフォルトの名無しさん :2005/10/12(水) 01:29:39
MATLABで、状態空間モデルのなかの状態変数(x行列)を抽出するには どうすればいいのでしょうか…。 具体的にはカルマンフィルタで求まった状態推定を抽出して、それを用いた計算を 行いたいのですが…。
457 :
デフォルトの名無しさん :2005/10/12(水) 09:54:48
matlabってコピーガードついてたっけ? バックアップとりたいのだが。
>>456 ここは工学とか物理とか、そういう専門のことを聞く場所じゃなくて、
Matlabプログラミングの質問をするところです。
もっと具体的に書いてもらわないと何が何だかわかりません。
>>457 バージョンやプラットフォームは?
コピーガードがついてるのはStudent Versionだけだったような気がする。
459 :
デフォルトの名無しさん :2005/10/13(木) 19:14:42
誰かMATLABでWORKINGMODELを動かすやりかたしってる?
460 :
デフォルトの名無しさん :2005/10/13(木) 21:04:51
student version だと機能制限で 不便ですか? 4年しかつかえないのでしょうか?
いまのStudent Versionには機能制限はないよ。 各ToolBoxもちゃんと使えるし。 起動時にプログラムCD-ROMを入れておかないといけない、 という起動制限があるだけ。 これも回避する方法はあるみたいだしね。
462 :
デフォルトの名無しさん :2005/10/14(金) 01:32:35
>461 どうやんの?
463 :
456 :2005/10/14(金) 02:29:47
失礼しました。改めていいでしょうか。 sys=ss(A,B,C,D) で表されているシステムの中の、 A行列にかかるx行列を抽出して変数にしたり(「set('statename')」ではなくて)、 要素のみを抜き出すことって出来るのでしょうか。
464 :
461 :2005/10/14(金) 21:25:23
完全な回避方法じゃないんだけどね。 自分はMac OS X版のR13 Student Version。 Roxio Toastでディスクイメージを作ってしまえばいい。 OS付属のDisk Utilityだとイメージの作成に失敗するけど、Toastなら大丈夫。 ただ、中途半端なイメージを強制作成することになるので、 一部ファイルが含まれなくなってしまう(PDFドキュメントとか)。 できあがるイメージはDisk Utilityで作成されるものと互換性があるから Disk Utilityで圧縮イメージに変換してしまえばサイズも小さくなるよ。
>>463 その「ss」というルーチンを自分は持ってないよ。
なんかのツールボックスのルーチンなんだな、きっと。
自分はお手上げ。
466 :
デフォルトの名無しさん :2005/10/14(金) 22:54:08
>>463 状態変数ってのはベクトルの時系列でしょ。
つまり、
\dot{x}=Ax+Bu
y=Cx+Du
の解なわけだ(初期値は適当に設定するとして)。
だから初期値と入力(u)を決めないとどうにもならない。
初期値と入力が与えられたなら、適当なwrapperを関数として作って特定の状態を抽出すればよいだけ。
別に関数を作んなくてもCを決めるだけでOK。
一出力のシステムなら、例えばC=[1 0 0 0 0 .....]とすればx(1)を抽出できる。
467 :
463 :2005/10/15(土) 04:45:01
>>465 まさしくコントロールツールボックスというモノの中のやつです…。
>>466 ということとは初期値とCをいじって、システムの出力を扱えばいいんですね…。
ありがとうございました、やってみます!
なんで自分の環境書かないで質問するんだろう・・・
469 :
デフォルトの名無しさん :2005/10/16(日) 14:52:31
>461 thx!
Matlabのsimulinkで、ある動作を1000回繰り返したいのですが どうやればよいのでしょうか?
AUX等から連続的に録音して、リアルタイムに表示させたいのですが どうすればいいでしょう。 audiorecorderオブジェクトは、1秒録音するのに2秒近くかかるので 困っています。 オブジェクトを複数立ち上げて交代で録音しようとしたら、フリーズ しました。 プラットフォームはWindowsXPです。
>>470 その動作がわからないとなんともいけないわけで。
学生用のライセンスは機能制限なし(つまり何でも使える)なのに安価→ 慣れてしまってMatlabなしには生きられなくなる→ そういう学生が理系就職する→ 高額な一般ライセンスを購入→ Mathworksウマー→ プログラミングができない学生を再教育しなければならない企業はマズー という構図なんだが、判っててもはまってしまう。 Matlabは便利だからとりあえずの結果を出すには最適だものな。 スレ違いスマソ。
474 :
デフォルトの名無しさん :2005/10/25(火) 16:11:11
DFTのアルゴリズムを教えていただきたいのですが。
中妻さんに聞くといいと思うよ
ある波にFFTをかけて、特定の周波数帯域について積分しようとしています。 しかし、単純にfft(data)とすると、虚数のデータが吐き出されるようで、うまくいきません。 どうすればパワースペクトルを求められるでしょうか。 初心者にアドバイスお願いします。
479 :
デフォルトの名無しさん :2005/10/26(水) 11:49:35
Matlabについて質問です。 2次元ヒートマップ、あるいは3次元2DZ (ZはFrequency)を作りたいのですがどうしてもバイナリーの2次元マップしか作れません。 アドバイスお願いします。 (簡単な例) 1)行列を、A=(1,2,3; 1,4,5; 4,3,1), B=(1,4,2;1,5,3;3,4,1)で定義する。 各々の等しいマトリックスエレメントを(x,y)にアサインしてやりそれらを2次元展開する。 つまり、(X,Y) = (Aij,Bij)でプロットする。 この場合、(1,1),(2,4),(3,2),(1,1),(4,5),(5,3),(4,3),(3,4),(1,1)の9つの点ができる。 2)私はこれらをプロットするのに、マトリックスA,Bを一次元展開してやり、Plot(A(:),B(:))で展開してやりました。 この場合グラフはバイナリー表示です。 3)更にここから同座標の数をヒートマップか3次元で表したい。 (1)の例ならば、(1,1)の座標が3個あります。 これをグラフに反映させたいのです。 よろしくお願いします
>>478 ありがとうございます。
振幅スペクトルとパワースペクトル、そのあたりのもやが晴れました。
ただ、
>>Pyy = Y.* conj(Y) / n; %パワースペクトル
ここまではたどり着いていたんですが、これをプロットすると、
両端にピークを持つグラフが出てきて、
横軸が周波数ではなくデータ数のようなんです。
単純にプロットの仕方がおかしいだけなのでしょうか?
それともデータの時間に関する情報が欠けてるのかなと思ったり。
データは、サーミスタで測定した温度変化です。
アドバイスお願いします。
>>478 冷静さを欠いていました。
なんとかなりそうです。
アドバイスが助けになりました。
fftでパワースペクトルを求めたあと、プロットする際の周波数軸の設定方法がわかりません。 どなたかアドバイスお願いします。
>>484 自分で調べてよくわからないから訊いたんだYO
もうちょっと自分でがんばるYO
486 :
デフォルトの名無しさん :2005/10/27(木) 17:43:09
うーん。三角波のグラフの表示方法がわかりません。 式はだいたいわかるのですが・・・。 始めたばかりで、わからないことだらけですので誰かご教授お願いします。
javaからMatlabを実行したりすることってできるんでしょうか?
>>488 それはjavaのスレで聞くべきなんじゃ・・・
ある時系列データのスペクトルを見て 49.5[Hz]-50.5[Hz]の成分を除去する、 といったことがMatlabではできるのでしょうか。 具体的な関数などを教えていただけませんか。
どもありがとう
493 :
デフォルトの名無しさん :2005/11/01(火) 14:59:23
Solaris版のmatlab使ってます。 コマンドライの引数にmファイルを指定して実行することはできるでしょうか。 $ matlab hoge.m こんな感じです。(このままだと、matlabが立ち上がるだけです) octaveだとできるのですが。 やりたいことは、シェルスクリプトの中に組み込むことです。
494 :
493 :2005/11/01(火) 18:25:43
誤:コマンドライ 正:コマンドライン matlab --helpとやってみても、matlabが立ち上がるだけだし。 コマンドラインオプションはないのかなぁ
495 :
470 :2005/11/02(水) 16:48:40
>>472 具体的にはある入力を1秒に1回のサンプリングを1000回分して
その入力の最小値と最大値を求めたいのです。
自分が考えたsimulinkのやり方は、
1秒ずつディレイさせてそれをMinとMaxのブロックにぶちこむというもの
なのですが、それでは、MinMaxの入力の枝が1000個になってしまい
間違っているような気がしまして質問させて頂きました。
環境:MATLAB6.5、xp
Linux版なら-nodisplayオプションでいけるはず。 ただし手元にLinux版がないので間違ってるかも Windows版は今試してみたがGUI専門ぽい。
>>495 つまり、1000サンプル分のデータの内の最大値と最小値を求めたいってことですか?
それでしたらバッファを使えば何とかなるかもしれません。
DSPブロックセットはインストール済みですか?
ちなみに、ディレイを1000個も使ったらメモリの関係で動作がすごいことになりそうです・・・
>>496 うちのはWindows版みたいです。
>>497 おっしゃるとおりです!
実際には1000秒のシミュレーション中の変化する値の最小値と最大値を
随時更新していくという事をしたいのです。拙い説明ですいません。
今手元にMATLABがないので、DSPブロックセットの有無が分からないので
確認してからまた連絡させていただきます。
>>498 シュミレーションは少なくとも1000秒以上行い,
1000秒ごとに最小値と最大値を更新する,ということでいいのかな?
それともシュミレーションは1000秒間行うだけ?
あと,最小値と最大値の更新はリアルタイムで行う必要がありますか?
ある程度の遅延があったら無理?
質問ばかりですが,一応確認させてください。
>>499 シミュレーションが全体で1000秒ありまして、
最小値と最高値の更新は1秒ごとにしたいと思っています。
最小値と最高値の更新はリアルタイムであればベストですが、
ある程度の遅延があっても構いません。
>質問ばかりですが,一応確認させてください。
いえいえ、すごくありがたい気持ちです。
よろしくお願いします。
なんだか思っているより単純な気がしてきた( ´Д`;) ↓じゃまずいんですか? シミュレーションパラメータで シミュレーション時間1000秒 固定ステップ,ステップ幅1にして .┌────┐. ┌────┐. ┌────┐ . | データ |__|.zero-order|__|. MIN |__ . | 系列 | | hold | | |. | . |______| |______|. | |______| ↑ | sampling time:1. | ┌────┐ |_|. MAX |__ | | |______|
>>501 それと全く同じ事を最近試しましたがダメでした(;´Д`)
考え的にはあってるかなと思っていたのですが
MinとMaxのあとをスコープで覗いてみたところ全く同じ結果になってました。
なぜだぁ_| ̄|○
んーMIN,MAXにはデータ保持機能ないのかな・・・ なら細工しないと無理そう
simulinkつかったことないんですけど、 minからの出力を、またminに フィードバックさせたりできないんですかね? zero-order holdからの出力とマージさせれば それまでの最小値がだせますよね?
できますよ,と。 ただ,出力を直につなぐとMATLABがフリーズするので Delayブロックを噛ます必要があります。
トレーディングシステムスレで書いたのをコピペさせて頂戴。 MATLABで株価チャートを表示させたいんだが とりあえずチャートのX軸に日付を出力させたいのよ。 けどdateを使うと始まりの日付だけしか指定できないし、 ネット上から落としてきた株価データファイルの日付と一致させられない。 どっかにサンプルは落ちてないものかね? 救っておくれ。
おぉ〜こんなにしっかり纏められたドキュメントがあったのか PDFドキュメントの存在しか知らんかったよ どうもありがとう 未だにMATLABのトップページからどの道筋を行けば辿り着けるのか分からないが ドキュメントの内容は充実しているくせに、サイト自体が使いにくい罠
日本語ドキュメントから辿って行けばよかったのだね 技術サポートのページばかり通ってたよ
510 :
デフォルトの名無しさん :2005/11/08(火) 21:49:08
Matlabコンパイラについて聞きたいことがあります。 guideを使ったGUIプログラムをスタンドアローンアプリ にしたいのですが、 (C/C++のグラフィックライブラリを使うのか、 あるいはそうでないのかがよく分かっていませんが) mcc -m FILENAME mcc -B splcpp FILENAME だと生成されませんでした。正しい操作はどうでしょうか?
511 :
デフォルトの名無しさん :2005/11/08(火) 21:55:25
510です。 単純なコマンドウィンドウに表示させるソースを上記で 処理すると、きちんとDOS窓表示のexeができます。 ちなみに、上記GUIソースを-mオプションで処理すると 膨大なCソースが生成され、最後はエラーで止まります。 (エラー内容は必要であれば後日貼ります) これらCソースを無理やり、VCでリビルドをかけても 当然ながらexe生成はできず・・という状況です。 初心者です。ネットでそれなりに調べ、マニュアルも目を通しています。 ぜひ皆さんのご助言をたまわりたく。
512 :
デフォルトの名無しさん :2005/11/09(水) 20:43:06
MATLABをはじめてまだ1週間もたたないので、初歩的な質問ですが、 f0 = 440; %[Hz] f1 = 880; Nsec=2; %[sec] Sf = 44100%[Hz] Np= Sf*Nsec; y =zeros(1,Np); for i =1:Np y1(i) = 100*sin(2*pi*f0*i/Sf+(1/3*pi)); y2(i) = 50*sin(2*pi*f1*i/Sf+(4/3*pi)); end; y3 = y1 + y2; x(1:Np)=(1:Np)/Sf; axis([0 200 -150 150 ]) hold on; box on; plot(y1(1:200),':'); plot(y2(1:200),':'); という、波形のグラフを作ったのですが、 このときx軸(時間軸)には数値が現れるわけですが、 これを時間に置きなおすにはどうしたらよいのでしょうか? plot(y1(1:200),':');を plot(x,y1(1:200),':');にするとx=0のところに線が書かれてしまうのですが・・・
513 :
デフォルトの名無しさん :2005/11/09(水) 20:44:41
最終行 plot(x(1:200),y1(1:200),':');でした。
514 :
デフォルトの名無しさん :2005/11/09(水) 21:14:20
515 :
デフォルトの名無しさん :2005/11/09(水) 23:24:00
質問させてください。 05/11/09といったようにスラッシュで区切ってあるデータを テキストファイルからloadするにはどうしたらよいのでしょうか? 一列目には日付、二列目・三列目には数字が入力されているテキストです。 05/11/09 100 200(←こんなかんじ) load test.txt; だけでは05/11/09のうちの最初の5しか読み取って いないようでした。
dlmreadだったかなんかで、 デリミタ指定したデータの読み込みができたはず。
517 :
デフォルトの名無しさん :2005/11/13(日) 15:48:38
スタートアップ時に下記のデフォルト値を指定しているのですが、これ以外に スタートアップ時にデフォルト値を設定できる項目はないのでしょうか? set(0,'defaultAxesFontSize',14); set(0,'defaultAxesFontName','Helvetica'); set(0,'defaultTextFontSize',14); set(0,'defaultTextFontName','Helvetica');
518 :
デフォルトの名無しさん :2005/11/14(月) 23:58:07
Matlab初心者なんですが質問させて下さい。 パワースペクトルを出した後,ある周波数帯域例えば 10〜20HZ間の合計パワーを求めるにはどうしたらよいのでしょうか?
forループで回すか,それよりsum関数で求めちゃうのがいいかも。 コマンドラインでhelp sumって打ち込めば説明が出てくるYO
522 :
デフォルトの名無しさん :2005/11/15(火) 15:01:58
523 :
デフォルトの名無しさん :2005/11/17(木) 02:51:37
シミュリンクの高速化ってCで書き直すぐらいしか無いのかな・・
MATLAB自体重いしなぁ・・・ 複雑なプログラムだと結果出るまでに数時間,数日間ってのもざらだし。 その分書くのは簡単なんだが。
リアルタイムワークショップ使ってみたら?
528 :
526 :2005/11/21(月) 20:13:21
>>527 有難う。
硬度比とか良く分らなかったけど、
当然だけどソルバによって計算結果が違う割には、
どのソルバが適当なのか理解出来てないって気持ち悪いな・・・
「多変数関数でない」とかがちかいのかな?
>>526
質問です。 MATLABでエクセルからデータ(たとえば、時間、変位X、変位Y、角変位φのような)を読み込んで 時間が変化していく際の、状態を(X,Y)とφでグラフにプロットして再現したいと考えています。 最初for文でまわしてplotでhold onとoffをつかって表現してたのですが、 かなり時間がかかってしまいアニメーションとしてみたかったのでうまくいきませんでした。 それでmovieinやgetframeというコマンドでアニメーション化をしてしまおうと試みました。 普通のplotで一つのグラフだけだとうまくやることはできました。 ただ今回は片方が極座標系のグラフを使いたいのでpolarのコマンドを使っていて subplotで2つのグラフ表示をさせています。 両方同時に再生したいと考えているのですが、subplotを使った場合のアニメーション化が どうしてもうまくいきません。 これは可能なんですかね?もしご存知の方いらしたら教えてください。お願いします。
531 :
デフォルトの名無しさん :2005/11/24(木) 13:55:47
質問はageれば? よくわからんが、XDataとYDataをsetで変更すれば、毎回書き直すより 少しは速くなる。
532 :
デフォルトの名無しさん :2005/11/28(月) 16:10:00
いくつかのfigureを表示するとき、それぞれ別窓で出すためのコマンドはありますか?
533 :
あ :2005/11/28(月) 16:23:34
x軸を周波数から時間軸に変えたいです。 教えてください。 今サンプリング周波数が16000kHzなのですが これを80000ポイントで5秒にしてます。 これを時間軸で表したいのです。 お願いします。
535 :
デフォルトの名無しさん :2005/11/28(月) 22:13:11
>>457 なっが〜いシリアルつかえば
コピーガードも何も関係ないよ
>>461 > いまのStudent Versionには機能制限はないよ。
> 各ToolBoxもちゃんと使えるし。
> 起動時にプログラムCD-ROMを入れておかないといけない、
ver7はそうなってるんか?
ver6までは長い汁アル使えばそんなことしなくてもよかったし
>>473 > 学生用のライセンスは機能制限なし(つまり何でも使える)なのに安価→
> 慣れてしまってMatlabなしには生きられなくなる→
> そういう学生が理系就職する→
> 高額な一般ライセンスを購入→
> Mathworksウマー→
> プログラミングができない学生を再教育しなければならない企業はマズー
> という構図なんだが、判っててもはまってしまう。
> Matlabは便利だからとりあえずの結果を出すには最適だものな。
今業界ではオープン化、オープンソース化の動きが出ている。
その動きを予想して漏れはオープンソース版MATLABライクな言語
R言語に興味を示している。グラフ表示にはGNU plot.
ほかの言語としてはC++/Javaで応戦なり。
今まで研究室にいたメンバーは授業でいくら教わっても皆C/C++を
理解できなかった。そこで彼らは研究室に入ってからMATLABという言語に
出会って大半の者が「これが俺の求めていたものだ」とか言いだして感動しちゃってる。
漏れはその流れに逆らって苦労して時間をかけてC++/Javaに手を出した。
自作しなければならないものが多く、手探りがしばらく続き大変だったが、
今では自動化ツールにより開発効率がMATLABを使うよりも確実に向上している。
なんとかMathworksの魔の手から逃れることができた、漏れもすれ違いスマソ
>>488 Javaスレでも質問したな?
だが誰も答えられなかったな?
漏れがちょっと答えたがRuntimeクラスを
使う以外わからなかったのだ。
ただしMATLABのマニュアルには
MATLABからJavaオブジェクトを
呼び出せると書いてあるのをみたことがある。
やりたいことはそれか?
Javaコードがすでに存在しているからそれを
どうにかしたいのか、それともMATLABコードが
すでに存在するからそれをどうにかしたいのか、
どっち?
それとも、webで何かをしたいのか?
一体何をしたいのかかかないと
質問に答えにくい。
JavaからMATLABを呼び出す方法については
なにやら
>>496 がヒントを出しているみたいだぞ。
こいつをJavaのRuntimeクラスをつかって。
539 :
デフォルトの名無しさん :2005/11/28(月) 23:08:02
漏れてきにはWavelet変換がホットなんだけど。 もうフーリエ変換は(ry
>>540 計算量では、WTはFFTに太刀打ちできんよ。
542 :
デフォルトの名無しさん :2005/12/01(木) 23:53:55
FFTじゃ味気ない
543 :
デフォルトの名無しさん :2005/12/07(水) 16:09:14
X = A; Y = A; のかわりに [X, Y] = ***(A); という構文があったと思うのですが、***に入るコマンドを教えてください。
544 :
デフォルトの名無しさん :2005/12/07(水) 16:55:58
A×BのマトリックスのGaussianフィルタを作りたい時 どのように入力したら良いですか?
546 :
デフォルトの名無しさん :2005/12/11(日) 14:34:14
MATLABで、LMSアルゴリズをつかった、適応フィルタの作り方教えてください。 まじ、悩み中です
>>546 どういった条件の下でやるのか書いてもらわんことにはね・・・
548 :
デフォルトの名無しさん :2005/12/11(日) 21:34:25
ディジタル音声のデータに雑音がまざってて、雑音除く為に、適応フィルタを 使いたいんですが。。
作成した信号を再生するとともに、その反射との合成を観測する 定在波観測実験にMATLABを用いようとしたのですが 信号データを作成して再生と録音コマンドを実行しても 再生が終わった後録音が始まってしまい、目的の結果が得られませんでした。 スピーカーから音を出すと同時にマイクで録音するためにはどうすればよいでしょうか?
>>545 「その文字はMATLABで使えません」とか言われました。
>537 >オープンソース版MATLABライクな言語R言語 MatlabにはOctaveのほうが近くね? R言語はS言語だし。 そういえばMaximaというMathematicaっぽいやつもあった。
553 :
デフォルトの名無しさん :2005/12/19(月) 17:00:02
二次元画像にLEEフィルタをかけるというプログラムなんですが [ly lx] = size(S1) m =2; i=0; j=0 for i=m+1:ly-m for j=m+1:lx-m a=S1(i-m:i+m,j-m:j+m) b1=mean2(a) b2=std2(a) varx=((b2^2)+(b1^2))/(((b2/b1)^2)+1)-(b1^2) b3=varx/(((b1^2)*(b2/b1)^2)+varx) FS(i-m,j-m)=b1+b3*(S1(i,j)-b1) end end S1が元の画像、FS1が処理後の画像です。 なんかやけに計算に時間がかかるんですが、プログラムに無駄があるんでしょうか?
554 :
デフォルトの名無しさん :2005/12/19(月) 17:16:59
質問です。 以下のような行列で、a,b,cそれぞれの系列について総当たりで単回帰分析を行いたいのです。 a→b,a→c,b→c,b→a,c→b,c→aというふうに。 -------------- data = a b c 0 1 2 1 5 4 2 3 7 2 4 5 -------------- (ちなみに実際のデータはdouble配列で、a,b,cは便宜上付加しているだけです) 現状では、 for i = 1:3 for i = 1:3 k(i,j) = regress(data(:,i),data(:,j)); end end というようにforを駆使して(笑)求めているんですが、ループを使わずに 記述する方法は無いでしょうか? ・単回帰分析に特化されたregress関数 ・それぞれの列に対して処理を行うことを明示する関数 などがあれば出来そうだと思い、探しているんですが見つけられません。 素人質問で申し訳ありませんが、よろしくお願い致します。
555 :
554 :2005/12/19(月) 17:18:53
うあ。訂正です。2つ目のforは for j=1:3 の誤りでした。
556 :
必死 :2005/12/20(火) 12:38:02
MATLABでパワースペクトルを表示したいんですが、なんかいい関数ありますかね?
557 :
デフォルトの名無しさん :2005/12/20(火) 14:11:20
このあいだ、適応フィルタで質問させてもらったものです。 ある程度できたんですけど、因果律を満たしていないのか、うまく出来ません。 おそらく入力信号に遅延を付加していない体と思うのですが、その遅延の方法 自体分からず困ってます。どなたか入力信号に遅延を付加する方法を教えてください。 ちなみに、入力信号は、3,000点のランダム信号。タップ数は70でやっています。
559 :
デフォルトの名無しさん :2005/12/22(木) 22:36:39
おすすめのMATLABクローンはありますか?
560 :
デフォルトの名無しさん :2005/12/23(金) 02:25:13
質問です。 ものすごい初歩的な質問なのかもしれませんが、仮想メモリについてです。 画像処理を行っていまして、480×640×600のマトリックスを作りたいのですが、「out of memory」のメッセージが出力されてしまいます。 マトリックスサイズは480×640ピクセルの画像が時間軸方向に600枚ある画像を解析していこうと思うのですが、できれば、1000枚くらいまで解析したいのです。 ところが、480×640×200くらいまでのマトリックスしか作ってくれません。 画像はグレースケール画像なのですが、画像マトリックスをAとすると、A=zeros(640,480,600);と宣言して、そこに実際に撮像した画像のグレースケール値を突っ込んでやろうと思うのですが、必ず「out of memory」が出力されてしまうのです。 PCには物理メモリが1G載っていて、仮想メモリを5G当てているのですが、タスクマネージャで見てみると、コミットチャージで1Gちょっとしか使ってくれないのです。 MATLABの環境はR12とR14のどちらかを使用しています。 MATLABのほうで使ってくれるメモリの量は決まっているのでしょうか?もし、それを解除できるような方法がありましたら、どなたかご教授願います。
>>560 メモリ上限を増やす方法は知らないが、
グレイスケールなら
A = repmat(int8(0), [640 480 600])
にしてみては?
562 :
デフォルトの名無しさん :2005/12/23(金) 14:16:54
563 :
デフォルトの名無しさん :2005/12/26(月) 00:57:42
>>560 ,562
ありがとうございます。参考にさせていただきたいと思います。
>556 Signal Processing Toolboxでよければ、 periodgramをはじめ、pwelch、pcov、pyulear、pmusic、peig... 多数のPower Spectrum Density Estimationができます。
566 :
565 :2005/12/29(木) 02:14:53
567 :
デフォルトの名無しさん :2006/01/01(日) 00:15:52
Matlab Student Version R14は、デスクトップと2台目のノートブックとの2台にインストールして使うことは出来ますか?
>567 できるけど、起動時にCD-ROMが必要になるので、いつも持ち歩いてないといけないぜ。
569 :
デフォルトの名無しさん :2006/01/02(月) 14:03:33
Matlab Student Version R13では起動時にCD-ROMが必要になるが、 Matlab Student Version R14は起動時のCD-ROMが不要になっているらしいです。 あらためて、R14では、デスクトップと2台目のノートブックとの2台にインストールして使うことは出来ますか?
「インストールして使う」ことはできる。ライセンス的にどうかは知らない。 自分はR13だけど、R14を使ってる友人は起動時にいつもCD-ROMを入れてる。
571 :
デフォルトの名無しさん :2006/01/03(火) 16:15:15
SimlinkのSpectrum Scopeの下位の階層で行っている手続き、 すなわち、FFTや窓関数について、実際のスペクトラムスコープ との動作と照らし合わせて説明している書籍(和書、洋書)とか、 測定器(Agilentなど)のマニュアルとか何処かにありませんか? デジタル信号処理の書籍を読めば良いことかもしれませんが、 Simlinkを使う上で、アナログスペアナの概念で捉えると勘違い してしまう部分など・・・
572 :
デフォルトの名無しさん :2006/01/03(火) 16:25:43
>>570 だとすると、Matlab Student Version R14 SP3 以降からなのか、
つい最近から、インストール時にActivation手続きが必要となったようです。
何方か、最新版Matlab R14 SP3でのインストール時のActivation手続きに関連して、
2台目へのインストールが出来るかどうか知りませんか?
matlabが早く動くPC一台ほしいんだけど オススメのCPUってどれだろう? バージョンは6.5でも7でもいい
夜名
576 :
デフォルトの名無しさん :2006/01/07(土) 13:32:14
t=0:0.01:pi; x=???????? polar(t,x); これで結果が楕円になるような関数xが欲しいのですが どなたか救いの手をよろしくお願いします。
578 :
570 :2006/01/08(日) 00:59:44
579 :
デフォルトの名無しさん :2006/01/09(月) 20:50:13
matlabで多倍長の変数などは作れませんか? どのようにやれば良いのでしょうか?
580 :
デフォルトの名無しさん :2006/01/12(木) 16:43:07
MATLABで音声信号等の包絡線を取るってことは出来るんでしょうか?
>580 できるけど、最初から用意されてるわけじゃないから、自分で作ればいい。 ヒルベルト変換を使うのが簡単だよ。
582 :
デフォルトの名無しさん :2006/01/15(日) 20:18:29
Mac でmatlabを使おうとしてるのですが、データの読み込みが異常に遅いです。 なんか同じようなことを経験した人いますか? PowerBook1.5GHz OSX tiger メモリ768Mb。30Mb程度のものをloadするのに 30分以上かかる。windows、linux上だと10秒ぐらいなんですが。
583 :
デフォルトの名無しさん :2006/01/15(日) 20:22:35
584 :
デフォルトの名無しさん :2006/01/15(日) 20:54:47
585 :
デフォルトの名無しさん :2006/01/16(月) 15:46:28
matlabで 読みこんだファイルに対する積分(シンプソン則等) は出来ないのでしょうか? 初心者なものでよろしかったら アドバイスして下さい.
できる。 ファイルを読み込む部分と、数値積分をする部分に分けて考え、 マニュアル読んでがんばれ。
587 :
デフォルトの名無しさん :2006/01/17(火) 12:13:31
>>586 ありがとうございます。
参考にします.
588 :
デフォルトの名無しさん :2006/01/23(月) 16:54:51
MATLABのシミュレーション中に入力値を変更したいんだけど、仕方がいまいち分かりません。。。 誰か分かる人いませんか??help me!! あと、シミュレーション画面をGUIで表示する方法も分かる方がいれば教えてください。
>>588 Simulinkのこと?
どのように変更したいのかなぁ。
チューナブルパラメータだと、値を変えれば反映されない?
590 :
デフォルトの名無しさん :2006/01/24(火) 01:48:15
>>589 Simulinkのことです。
チューナブルパラメータが何だかよく分からないんだけど、要はシミュレーション結果をグラフで表示してるんだけど、途中で値を変化させてそれにともなってグラフも変化してほしいんです。
グラフをリモコン(GUI)で自在に操ってる的な感じかな。あ、だからシミュレーション途中の動いてるグラフがGUIの画面中で表示させたいんです。
無理なんですかねぇ?分かりますか?
>>590 やりたいことが漠然としすぎててワカラナス
もうちょいまとめてください
スイッチで切り替えは?
>>590 チューナブルパラメータというのは、シミュレーション中に変更しても反映されるパラメータ。
リモートコントロールとGUIも結びつかないのだが、Switchみたいなダブルクリックしたら
変化するブロックなら、簡単に作れるぞ。扇風機みたいな、切,弱,中,強みたいなブロックを
作って、ダブルクリックしたらONになり他はOFFになるってのも、ちょっとがんばれば可能。
グラフが変化ってのがイメージわかん。
594 :
デフォルトの名無しさん :2006/01/26(木) 20:31:17
3次元行列Aの第1次元と第2次元を交換したい、つまり for i = 1:size(A,3) A(:, :, i) = A(:, :, i).'; end という処理をしたいのですが、ループを使わずに、かつ、大きな インデックス行列を作らずにすむ方法はありますか?
595 :
デフォルトの名無しさん :2006/01/27(金) 02:25:50
質問です パワースペクトルを求めた後,プロットすると横軸が周波数,縦軸がパワーのグラフに なりますが、このグラフのある周波数帯域だけを積分とかすることは可能なのでしょうか? お願いします
596 :
デフォルトの名無しさん :2006/01/27(金) 18:46:25
>>596 先生や先輩あるいは同じ学科の友人に聞いた方が
得られるものは多いと思いますよ。今後のためにも。
599 :
デフォルトの名無しさん :2006/01/27(金) 21:07:27
>>594 です。
解決しました。permuteですね。
600 :
デフォルトの名無しさん :2006/01/28(土) 01:38:56
>>593 モデルウインドウのSimulation→parameters→Workspace I/OのLoad from workspace欄のInputにチェックを入れたいんですけど、エラーが消えません。
何が悪いのかさっぱり分かりません。。。エラーもいつも同じエラーというわけでもないし…。
どうすればいいか分かりますか?簡単な例でいいので教えてくれませんか?
あと、チューナブルパラメータってS-Functionしか使えないんですか?
>>600 んー・・・
Simulink歴はどの程度ですか?
話を聞く限りでは初めて触るような印象を受けるのですが・・・
そうだとすると説明するのが逆にムズカシス(´・ω・`)
ttp://www1.bbiq.jp/kougaku/matlab_intro.html ググって引っかかったページですが,例えば【13】でのGainブロックの値を
mファイルではなくブロックパラメータに直接記入し,さらにシミュレーション中に他の値に変えれば
Scopeブロックに表示される結果も変わります。
わざわざワークスペースから引っ張ってこなくても,モデルのブロックの値を変えればいいと思うのですが・・・
おっしゃっているチューナブルパラメータってのは単にこういう変数ってことでいいのかな?
602 :
デフォルトの名無しさん :2006/01/28(土) 04:57:31
>>601 ほぼ初心者ですね。
でも、担当の教授が先月亡くなりまして…。
しかも、先輩もMATLABはあまり分からないとのことで、helpが必要なんです。。。
確かにブロックパラメータに直接数値を記入すれば、シミュレーション中にも結果は変わるようですが、ブロックパラメータに数値でなく変数をいれ、ワークスペースで変数の値を変更しても結果はシミュレーションしなおすまで変わりません…。
なぜでしょうか?不可能なんですか?
>>602 今手元にMATLABないから確かめられないけど,
シミュレーション実行中に変えられる値と変えられない値があります。
そのせいかも知れません。
どういった値を変化させたいんですか?
>595 パワースペクトルをどうやって求めたのかにもよるけど、 コンピュータ上(離散領域)での積分というのは加算(Σ)と同じことなので、 ただ必要な周波数帯ごとのパワーを足し算するだけで良いんじゃないかな。 ただ、デシベルになっているときは単純に加算できないので注意ね。
605 :
デフォルトの名無しさん :2006/01/28(土) 10:33:00
>>603 変えられる値と変えられない値とは?例えば?
う〜ん。どういった値って言えばいいんでしょうか?
例えばconstantのブロックパラメータに変数aを入れて、そのままscopeにつなぐ。
で、ワークスペースかなんかで初期値をa=1とかにしとく。
んで、シミュレーションをやると、scopeにはa=1のグラフがでますよね?
そのシミュレーション途中でワークスペースでa=2とかを打つと
scopeで出てくる値もa=2に変化してくれればありがたい。
それがならない…。
ブロックパラメータに直接1と入れて、シミュレーション中にブロックパラメータの値を
2とかに変えると、それはscopeに反映されて出てくる。
違いが分からん。
サイバネットのWEBサイトがリニューアルしてる。 おかげでブックマークがつながらないぽ。 卒論の時期に面倒なことしないでくれよー。
sage
だからスイッチで切り替えではダメなんかよ?
スイッチじゃ融通が利かないじゃない 変数をそんなに扱えるわけじゃないし
>ワークスペースかなんかで初期値をa=1とかにしとく。 >んで、シミュレーションをやると、scopeにはa=1のグラフがでますよね? >そのシミュレーション途中でワークスペースでa=2とかを打つと >scopeで出てくる値もa=2に変化してくれればありがたい。 ていってたから 例えだってのは分かってるけど どの程度のことをやりたいのかがよくわからない
612 :
デフォルトの名無しさん :2006/02/01(水) 19:13:46
一次元配列があって、 A = [1 2 3 4 5 6 7 8 9]; これを3列に分けたいんですけど、何かいい方法ないでしょうか? つまり、ベクトルAから、↓こんな行列Bをつくたいのですけど・・ B = [1 2 3; 4 5 6; 7 8 9] 環境は、MATLAB 7.0.1 です。よろしくお願いします。
そんなことも聞かなきゃできんのか
614 :
デフォルトの名無しさん :2006/02/02(木) 05:29:29
自己相関法に基づくLPC分析でパワースペクトルを算出するようにしている。 このとき、Signal Processing Toolboxにある関数pyulear.mを使用する。 ってどうやって使用するのですか?
>612 reshape
616 :
デフォルトの名無しさん :2006/02/03(金) 01:42:50
こんな時間に回答してくれる神はいるのだろうか・・・ 伝達関数の計算をしたいんですけど、 inv(sI-A)とかやりたいんですが、 当然s*Iじゃ受け付けてくれず、 tf('s')とかした後に、s*I-Aとやると、おそらく行列ではなくなって、 逆行列とか計算できなくなるのですが・・・ いったいどうしたらいいんでしょうか? 手計算じゃきついです・・・。
正方行列でいいのかな? Aは適当な正方行列,sはスカラとしてIはそのままIとして使ってないよね? 単位行列はたしかeye関数で生成すると思ったんだけど・・・
正方行列です。 Iもちゃんと単位行列です。 sはラプラス変換のときのsです。
もちろん探してから質問したわけですが。。 答えてもらったようで、なんも答えてもらってない・・(´ д`)
酷い言い草だ・・・ 結局sについて何も答えてないじゃないか 勝手にするがよろし
( ゚д゚)ポカーン
623 :
デフォルトの名無しさん :2006/02/03(金) 23:13:09
>616-622 tf('s')で変換するとinv()は逆行列ではくて逆システムを求める演算になります。 Mathematicaっぽい機能を使いたいときはsymbolic math機能で。 s=sym('s') I=eye(2) A=[ 0 1 ; 2 3] X=inv(s*I-A)
624 :
623 :2006/02/03(金) 23:18:49
補足 >623で書いたやり方はMatlabのインストールの仕方やネットワーク構成が複雑だと エラーになることがあるよ(ライブラリの整合性の関係で)。 スタンドアローンで動かしているとかOSをサーバ/クライアントで統一しているとかなら問題なし。
すいません、初心者な質問で申し訳ありません。 行列の要素で一定の値以上のものだけを ほかの行列にしまっていきたいのですが、よい方法はないでしょうか? できればfor文を使わない方法で教えていただきたいのですが… よろしくお願いします
早速の返信ありがとうございます! find関数について調べてみます。
628 :
625 :2006/02/05(日) 22:38:15
んーどうもうまくいきませぬ… リンクからnonzerosという関数を見つけたのですが 値が0以外ではなくこちらから指定した値以上のものを抽出したいのですが… たびたびすいません。ご助言お願いします。m(_ _;)m
>>628 A 任意の行列
x 閾値
find(A>x) A>xの要素の"インデックス"
これで動くと思うけど。。。
630 :
625 :2006/02/05(日) 23:11:02
ほんと、ど素人なものですいません ”インデックス”が抽出できるのはわかりました。 ただ、そこから中身をどう持ってくるのかわからないんです…
631 :
625 :2006/02/05(日) 23:13:44
何とか解決しました ありがとうございましたm(_ _)m
>>631 こういう人って最終的にどう解決したか書かないんだよねぇ。
最近そういうの多く見てて書きたくなっただけ。
634 :
デフォルトの名無しさん :2006/02/06(月) 22:44:46
ある行列をplotしたいんですけど、行列が長くて一回で変数に入りきらないので、 for文で回して、plotしたいのですけれど、できますか? 例えば、こんな感じです。 for j=1:10 A = fread(fReadId, [2 10000], 'real*8'); t = j:10000 plot(A(1, :), A(2,:)); % <= ここでちゃんと続きにplotできるようにしたいのですが、 end よろしくお願いします。
holdしてみっせ。 自分だったら、for文の前に plot(0, 0, 'k.', 'visible', 'off'); hold on; と書くかな。 end文のあとにhold offも忘れずに。
636 :
634 :2006/02/07(火) 13:18:53
>>635 なるほど、ありがとうございます。
ですが、plotしたときに、 plot(A(1, :), A(2,:), 'b.-');とか線でつなぎたいのですが、
そこまではやっぱりできないですかね?
>>636 setでXDataとYDataを直接変更する。
動作確認してないがだいたいこんな感じ。
% 1回目
h = plot(A(1, :), A(2,:), 'b.-');
% 2回目以降
set(h, 'XData', [get(h, 'XData') A(1,:)], 'YData', [get(h, 'YData') A(2,:)])
638 :
デフォルトの名無しさん :2006/02/08(水) 15:33:01
simulinkで、transport delayブロックを使用した際、 初期バッファが割り当てられますが、 そのバッファの中身を覗くことってできますか?
初期バッファの設定ってなかったっけ? なければ0じゃないかな
640 :
デフォルトの名無しさん :2006/02/09(木) 03:09:10
matlabで設計変数を変えてANSYSで計算する循環プログラム作りたいんですけどどうすればいいんでしょうか.
>>640 どうすればいいんでしょうかって・・・( ´Д`;)
少しは自分で考えれ
話はそれからだ
642 :
デフォルトの名無しさん :2006/02/10(金) 00:22:25
MATLABのFFT関数を用いる際、デフォルトでは何の窓関数に 設定されているのでしょうか?分かる方いましたら教えてください
基礎的な事項は自力で乗り越えましょう コマンドでhelp fft
644 :
デフォルトの名無しさん :2006/02/10(金) 00:52:20
ところで、あまり話題にならないんだけど、Matlabを個人で買うときの値段っていくら? サイバネットのページみても「お問い合わせください」だったと思うんだが。
startup.mでデフォルトの線の太さを指定することはできませんか?
>>645 手元に無いので自信は無いし、やったこともないが、get_paramの
ヘルプを見ると、ヒントがあるかも。
モデルごとに覚えられるパラメータ(デフォルトフォント等)だと、
変更前と変更後でmdlファイルのdiffを取ったら一発。
>>644 35万くらい
正確な値段は会社にカタログがあるが土日休みだ
>>647 パーソナルライセンスだったらそんなもんだね。
ネットワークライセンスだったら、3倍くらい?
特に、個人と企業の差は無かったと思う。
たくさん買えば、少し割り引きしてくれるけど。
1から1000までの整数があるとして、その中から6つだけ重複なく選ぶのを シンプルにやるにはどうしたらいい? a = randperm(1000); b = a(1:6); でもいいけど randperm の無駄さ加減が目に余る。
初歩なのかもしれませんが、 関数の引数の初期数はどのように設定するのでしょうか?orできないのでしょうか? function a = hoge(b, c = 1) のようにやったらエラーがでました。 もしくは、その変数が定義されていなかったら。と制御できるのでしょうか? function a = hoge(b , c) if undef(c) c = 1; end のような雰囲気で。どのようにしてデフォルト値を設定するのでしょう? ライブラリ(toolbox)などでは引数を省略すると、、 ある値になるというのが普通にあったような気がするので、できるのだとは思うのです。 どなたかよろしくお願いします。
651 :
デフォルトの名無しさん :2006/02/13(月) 06:15:48
DefaultAxesBoxの効果がよくわかりません
>>650 nargin
詳しくはライブラリ関数のソース見ろ
653 :
デフォルトの名無しさん :2006/02/16(木) 21:53:19
3次元プロットでy軸を片対数をプロットにしたいのですがどうすればよいでしょうか 適当な関数が見つかりません教えてください。
654 :
デフォルトの名無しさん :2006/02/17(金) 01:13:06
fiugreプロパティ
stateflowに関してわかりやすい解説サイトありませんかね? stateflow 解説 使い方 チュートリアル とかぐぐってもなかなかいいのが見つからなくて
656 :
デフォルトの名無しさん :2006/03/01(水) 01:39:51
MATLABで水温の時間緯度断面図を書きたいのですが、調べても調べても全くわかりません。 どなたか、どうか、この件について教えていただけないでしょうか? よろしくお願い致します。
時間発展する行列のスナップショットを全部取る必要があるのだけど、 w_log(:,:,t) = w; という代入をすると、ものすごく重い。 ちなみにwのサイズは(n,n)。 w_logはサイズ(n,n,t_max)で事前に初期化済み。 どう書くのが一番速い?
>>657 スワップしてるんじゃないか?
t_maxを物理メモリのサイズに抑えて、こまめにセーヴ・初期化
>>658 ではないみたい
どうやら、global変数でw_logを持たせると代入も速いが、
引数渡しでw_logを持ち回ると、代入時に劇遅になるみたい。
>>659 matlab はたしか、
関数内で変化がない場合はアドレス渡しだけやって、
変化がある場合は、値渡し(コピー)するはず。そのせいだと思う。
ソルバーしたい。
662 :
デフォルトの名無しさん :2006/03/06(月) 17:41:52
MATLABの勉強をしようかと思っているんですが、 このソフトをフリーでダウンロードすることってできますか? 初歩的な質問ですいません。。
Matlabは製品なので、無料でダウンロードすることはできません。 海外ならMathworks、日本国内ならサイバネット・ジャパンに問い合わせてください。 学生版なら1万円くらい、正規版はたぶん40万円くらい。 フリーウェアでMatlabに似たような文法のソフトがいくつかありますが、 なかでもOctaveはお勧めできます。
Cのソースコードに落とすことができると聞いたのですがどうしたらよいでしょうか?
MATLAB Compilerでexeファイルにし、MATLAB環境がないPCでそれを実行すると 最初にDOS窓が開いてしまう。かなり見栄えが悪いです。このDOS窓を開かないよ うにする方法を知っている方がいたら教えて下さい。
>>666 Xp/2000の場合だが
exeのショ-トカットを作成して、その属性を開き、実行時の大きさを
最小化すれば殆んど目立たんよ。
670 :
デフォルトの名無しさん :2006/03/15(水) 08:57:02
ソルバーしたい。
>> edit test1.m でもって、test1.mを(もしあれば)開けるけど、 逆に、エディタで開いているファイルを閉じるコマンド (マウスを使わない) は、ないでしょうか?
GUIプログラミングで、複数のオブジェクトのCallBack関数に すべて同じ処理させたい場合、その共通処理用のmファイルを 別に作成しなければならないのでしょうか? GUIプログラミング作成時に自動生成されるmファイル内に、上記 共通処理用のfunctionを作成できないものなのでしょうか? ご教授お願いいたします。
>>671 CTRL+F4
で現在編集中のファイルが閉じる
レスサンキュー でもこれだと、一旦meditorに行ってからの操作になるよね。 MATLABのコマンドウィンドウから閉じる方法が知りたいんだけど。 スクリプトに書いて、最初に開いているmファイルを閉じたいんだが、 できないのかな?
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
676 :
672 :2006/03/22(水) 23:11:43
自己解決しましたです。
677 :
デフォルトの名無しさん :2006/03/24(金) 08:49:38
Suse 9からFedora 5にOSを変えたところmatlab7が正常にインストールできません。 同じような症状の人はおりませんでしょうか?
>>667 インストールできません?
こっちはインストールはできたんだけど、立ち上がらないんだよね。
ライブラリがどうのとか文句言われて。
妙な方法で解決したけど、なんだかなという感じ。
次のリリースで直ってるといいんだけど。
679 :
677 :2006/03/25(土) 13:27:09
すみません。同じく、インストール完了までは行ったのですが、正常にインストールできなかったようで 立ち上がりませんでした。もしよかったらその解決方法を教えていただけないでしょうか?
最近出版された 「だれでもわかるMATLAB即戦力ツ-ルブック」よくできてる。 今まで、初心者向けの和文ではサイバネットの講習用テキストに勝るものなかったからね。
>>679 解決になっているのか全く分からないのですが、
matlabを何か別のlinuxマシンに入れて、nfs経由でfedora core 5のマシンから
そのディレクトリにアクセスできるようにすると立ち上がります。
システムを入れたディスクにmatlabを入れてしまうと、
libwmlaback.soがどうのといって立ち上がりません。
nfs経由だと立ち上がるのに、そのまま/usr/localなんかにコピーしてくると立ち上がりません。
ファイルは全くいっしょのはずなのに、どうなっているんでしょう。
ちなみにバージョンはR2006aです。
683 :
デフォルトの名無しさん :2006/03/29(水) 23:34:50
もうすぐMATLABを使う事になったのですが言語に関する知識がほとんどありません。 何を勉強するべきでしょうか? C++などを勉強すればいいんですか?
684 :
デフォルトの名無しさん :2006/03/29(水) 23:49:42
MATLABを勉強するべきじゃないの? いや煽りとかじゃなくて
685 :
デフォルトの名無しさん :2006/03/30(木) 00:37:49
禿同 具体的課題があるなら習得は速いよ もち努力次第だけど
だよな。matlab 使うんだから matlab 勉強すべきにきまってら。 低脳にもほどが(ry
687 :
デフォルトの名無しさん :2006/03/30(木) 12:34:19
・・・MATLABってC++やBVで動く物じゃないんですね^^;
ありがとうございます。
>>686 すいません 「Matlab勉強しといて」って先生に言われただけで
さっぱりわかんなかったのです。低脳でした orz
まずは入門サイトをつかって 実際にやってみることだと思うがね。 とりあえず x = 1 とコンソールに入力してみるところから始めればいいかと思うが。
少しでも自分で調べてみればわかりそうなもんだが。 なぜまずそれをしない?
691 :
デフォルトの名無しさん :2006/04/03(月) 17:52:01
ファイル数が1行目に ファイル名が2行目から 連なっているファイルfilename.txtがあります。 filename.txt ファイルの内容はこんな感じ... 4 ichi.out ninjin.txt sandal.log yatch.out このファイルの2行目以降からの各ファイル名を 文字列として格納する文字列の配列Aを作りたいんですが、 Aはどのようにつくればよいでしょうか? cell配列を作ればよいことは分かるのですが Aの要素の書き換え方がわかりません。 どなたか助言願います。
692 :
デフォルトの名無しさん :2006/04/03(月) 18:16:26
A(i,j)=java.lang.String('something') を使えばいいんですね。 事故解決しました。すみません...
matlabのR2600aはどこでダウソできまつか?
plot したときに背景色が黒になるときと白になるときがあった と思うんだけど、どうすれば白に固定とかできます?
695 :
デフォルトの名無しさん :2006/04/11(火) 21:02:31
Octaveってフリーソフト?
696 :
デフォルトの名無しさん :2006/04/11(火) 23:02:19
>695 うん
699 :
デフォルトの名無しさん :2006/04/12(水) 16:52:57
サイラボのパラメータ推定コマンド教えてください(><)
700 :
デフォルトの名無しさん :2006/04/12(水) 23:20:24
>>698 axisX=gca;set(axisX,'color',[1 1 1]);→バック白
701 :
デフォルトの名無しさん :2006/04/14(金) 00:18:43
MATLABのお勧め参考書とかってある? ていうかMATLABの演習問題集とかって書店で売ってる? 近場じゃ全然MATLAB関連置いてナサス・・・
702 :
デフォルトの名無しさん :2006/04/14(金) 01:57:49
703 :
デフォルトの名無しさん :2006/04/14(金) 04:03:34
MATLABのRelease14(ServicePack3)をインストールしようとすると 一枚目は普通にインストールできてもまったく追加プロダクトが入れられない 「1. 新規および更新されたプロダクトを確認するためにThe MathWorks社のウェブサイトに接続できませんでした。」 と出てくるのだけどどうすればいいのだろう 助けて
正規のPLPを持ってない人の場合はそうなります。
705 :
デフォルトの名無しさん :2006/04/15(土) 11:33:46
追加プロダクト(CD2〜3枚目)のライセンスが多ければ多いほど PLPは長ーーーくなっているはず。
706 :
703 :2006/04/15(土) 14:52:29
そうだったのか、ありがとう
>>704-705 うちは
14-*****-*****-*****-*****
くらいの長さなんだけど、多分これでは短いのでしょう
(ウチの先生は「Toolbox全部使えるように注文したから頑張ってくれたまえHAHAHA…」といっていたのに…)
それなら追加プロダクトを使えるようにするには何の手続きをすればいいの?
>何の手続きをすればいいの? @既存ツ−ルの保守契約を結んでいないと追加のToolboxは販売してくれないから もし、結んでないなら、まずこれを結ぶ必要あり。 Aあとは追加したいToolboxの購入費用を支払うだけ。 >Toolbox全部使えるように注文したから...。 全部追加して&保守契約を結ぶとエライ費用だと思うよ。企業の場合はね。 シンボル計算はMathmaticaが優れているけど、数値解析、システム制御はMATLABの 1人勝ちだから強気の商売やってるよ。(>サイバネットさん)
708 :
デフォルトの名無しさん :2006/04/15(土) 17:31:37
目的が決まっているなら、本当に必要なToolboxだけを購入/保守しないと 大変な金額が・・・。 だからOctaveに・・・。 でも目的によっては非力が玉に瑕。ごめんちゃい。
>>706 >(ウチの先生は「Toolbox全部使えるように注文したから頑張ってくれたまえHAHAHA…」といっていたのに…)
今,Toolboxってすごくたくさんあるから,全部使えるように注文ってすごいぞ。
800万円ぐらい払えるでしょ
712 :
703 :2006/04/17(月) 09:51:04
色々とありがとうございます 先生に聞いてみたところ、MATLABの注文は昔の上級生任せにしていたらしく 注文すればToolboxも自動的に全部つくと思っていたようです 道理で「安くついた」と言っていたわけだ… 現在はその上級生が変わりに注文していたMATLAB6.5の方を使っています(いくつかToolboxがついていたので) そこで更に質問なのですが、6.5のToolboxを7.0のフォルダに移してサーチパスを通せば使えるでしょうか?
TOOLBOXの話にわりこむけど個人で作られたフリーのBOXがたくさんあるところって誰か知ってる?
mathtoolsでも探せば?
>712 パス通せば答えは自明でしょう〜♪
716 :
デフォルトの名無しさん :2006/04/19(水) 20:17:39
GUIのpushbuttonにVB、VCのようにオリジナルのpictureを貼り付けたい のですが、その方法が判りません。 もしできるのなら伝授下さい。お願い致します。
% 2006a Windows 64bit版 超簡単レポート % マシン:dual Op. 2.8GHz, メモリ10GBytes % OS: WinXP X64 英語版 % %行列の最大の大きさ a=zeros(23170,23170); % まで通る。これが限界。またonesはなぜか限界が低い。 % 変数名さえ変えれば、上の大きさの行列がいくつでも作れる。 % もちろんスワップ始めると、とても遅くなる。 % %簡単ベンチマーク clear all a=ones(10000,10000);b=ones(10000,10000);c=zeros(10000,10000); starttime=now*3600*24; c=a*b; now*3600*24-startime %上記の実行時間が約480秒 % 結論 完成度高い。あとはindexの制限がなくなればいいのだが。
乙!
719 :
デフォルトの名無しさん :2006/04/21(金) 21:46:38
age
720 :
通りすがり1 :2006/04/23(日) 10:52:27
ActiveXで外部機器をmatlabで操作しています。 しかし時々(特にコンピューターに負荷がかかっているとき) 外部機器からのイベントがActiveXの3つのコールバックのうち一つ(一番左に書いてあるやつ) をdropしてしまうようなのです。ActiveXControlはTimerObjectのようなので、 timer objectのbusymodeをqueueに設定する方法を探しています。 ちなみに外部機器の製造元はどうやって設定するのかわからないといっています。 どなたか助けてください。~
722 :
デフォルトの名無しさん :2006/04/23(日) 19:27:51
Scilabで複素数の計算をするとき u = [2+3*%i 1+4*%i]; max(u) でuの要素の最大値を求めようと思うんですが 「maxi: Argument 1: wrong type argument expecting a real matrix」とエラーが出てしまいます 正しく最大値を求めるにはどうすればいいのでしょうか?
エラーを見る限りだと,MAX関数に代入できるのは,実数値のみのようです。 なので,複素数の絶対値を取る必要があるのではないかと。 max(abs(u)) で試してみてはいかがでしょうか?
シム板と機械・工学板と電気電子板にscilabスレがあるんで scilabネタがあるなら使ってね (´・ω・`)ショボーン
725 :
通りすがり1 :2006/04/24(月) 08:12:33
720ですが、comand windowで>timerとやると、BusyMode: dropがでできます。 ここでset(timer,'BusyMode', 'queue')とっやた後、get(timer)してもBusyMode: dropがでできます。 どうすればいいのでしょうか?
726 :
通りすがり1 :2006/04/24(月) 08:20:53
追加です。t=timerとかやった場合はいけるんですが、これではmatlabの設定自体を 変えたことにはなりませんよね?設定自体を変えるにはどうすればいいのでしょうか?
>>726 ハンドル名の取得、そのプロパティの変更までいったじゃん。
自分で好きな設定をする.mファイル作ればいいんじゃないの?
ActiveXを使っているなら、GUIの .m or .figがあるんじゃあないの?
そこに追加してみてみて。
728 :
デフォルトの名無しさん :2006/04/27(木) 10:03:58
現在実行されているプラットフォームが WindowsかUNIXか知ることはできますか?
729 :
通りすがり1 :2006/04/27(木) 10:31:40
727さんありがとう。でも、外部機器のプロパティは自分では変更できないのです。だから 外部機器のハンドルをとってBusyModeを変更しようとしても、そもそもそんなプロパティ は無いのでエラーがでます。.m fileとか.fig fileで具体的にどうすればいいのですか?
>>728 ispcとかisunixとか、そんなんじゃなかったっけ?
質問させてください。 plot3(x,y,z)で出力した3次元のグラフィックのy,z平面にcontour(y,z)を載せる場合はどのように したらいいですか? hold on を使うとx,y平面に載ってしまいます。
x=0とした3次元のデータにしたらどうだ?
>>733 その方法が、わからないっす・・・。
>>729 外部機器はUSB、LAN、GPIB、RS...etc 何のいんた−faceで制御してんの?
ToolBoXはInstrument Control ToolBox...etc 何使ってるのかな?
736 :
通りすがり1 :2006/04/28(金) 06:47:13
USBを使ってます。toolboxは使ってません。
>>734 いっそのことyz平面がxy平面になるように座標変換すればいいじゃない
>>736 おれっちが無知なのかもしれんけど
Instrument Control ToolBox なしでUSB機器制御できてのか?
739 :
デフォルトの名無しさん :2006/04/30(日) 19:28:26
おしえてください 関数のfactorialってベクトルあるいは行列を引数にとることは できないんですか? factorial([1,2])=[1,2] みたいに。というよりも、やってみたらできないので、 何か代替法があれば教えていただけると幸いです。 よろしくお願いします。
scilabで3次元グラフをカラフルにするにはどうすればいいでしょうか?
742 :
739 :2006/04/30(日) 22:25:41
>>740 レスありがとうございます。
しかし、scalarとは何でしょうか?
関数でもないみたいですし、ヘルプ見ても載ってないですし・・。
あるいは、ベクトルでなくスカラー上でしかfactorialは定義されない
という意味でしょうか?
743 :
デフォルトの名無しさん :2006/04/30(日) 22:26:35
ある数が実数か虚数かを判定する関数はあるでしょうか?
745 :
743 :2006/04/30(日) 22:44:55
StudentVersionの購入を検討しているのですが、 R14SP3 と R14SP1 はどちらがお勧めですか?
StudentVersionは知らんけど、 R14SP1→R14SP3→Release 2006a(7.2) でアップデ-トしてる。 最新はRelease 2006a(7.2)。
R14SP3以降は、スライダーゲインが特許関係でなくなったような… それ以外は、そんなにかわらんような… 俺はR12.1を、メインで使っているような…
750 :
デフォルトの名無しさん :2006/05/09(火) 23:49:46
simlinkでなくてscicosなんですが、 scicosで作った.cosモデルをC言語もしくはC++のコードに変換して、 自分のmain関数から関数として呼び出したいんですが、 そういうことはできるんでしょうか? やり方の書いてあるサイトや、そういうこと質問できそうなサイトがありましたら、 ぜひ教えてください。
751 :
デフォルトの名無しさん :2006/05/16(火) 09:17:46
ディスクの空き容量を知るにはどうすればいいですか?
大家に聴いてみれば
753 :
デフォルトの名無しさん :2006/05/17(水) 06:04:04
dfじゃダメなの?
754 :
デフォルトの名無しさん :2006/05/20(土) 21:52:39
intel MacでMatlabのGUIインターフェイスを動かせた人っていませんか? 現状ではターミナルでしか動かないというのが現状なんですかねぇ・・・。
755 :
デフォルトの名無しさん :2006/05/21(日) 00:43:11
MATLABをデュアル・プロセッサー環境で 有効に使うためにはどうしたらよいでしょか?
756 :
デフォルトの名無しさん :2006/05/21(日) 01:35:57
>754 自分レスです。 >現状ではターミナルでしか動かないというのが現状なんですかねぇ・・・。 なんか現状が2回でてきて、変な文になっています。 馬鹿な子ですいません。
757 :
デフォルトの名無しさん :2006/05/22(月) 21:24:42
758 :
デフォルトの名無しさん :2006/05/22(月) 23:56:34
759 :
デフォルトの名無しさん :2006/05/23(火) 11:00:16
つぎのエラーが出てmatlab(linux版)が起動できなくなりました.
/var/tmp/lm_TMW.ld: relocation error: /var/tmp/lm_TMW.ld: symbol errno,
version GLIBC_2.0 not defined in file libc.so.6 with link time reference
>>51 の方法を使ってもだめでした.解決方法をご存知のかたいらっしゃいません
でしょうか?
760 :
デフォルトの名無しさん :2006/05/31(水) 16:11:02
C言語での a ? b : c を簡潔に書く方法はありますか? if a; d = b; else; d = c; end とやるしかないんでしょうか。
b * a + c * (1 - a)
>>761 それだと
・b、cが有限でないと(NaN、±Infだと)異常な結果になる
・aがtrueのときもcが(falseのときもbが)実行される
という問題があります。
すみません、スレ違いで恐縮なのですが、以前あったGNU R のスレッドのURL を、どなたか教えていただけませんか?
765 :
763 :2006/06/06(火) 00:31:45
>>764 ありがとうございます!
なるほど、スレッドタイトルに"GNU"が入っていなかったのですね。
766 :
デフォルトの名無しさん :2006/06/06(火) 23:57:22
U=[4,3,2,1,0,-1,-2,-3,-4] のように定義して、配列位置と最小値を表示させるにはどのように書いたらよいのでしょうか? 特に配列位置を表示させるのに手間取っています。 どなたか教えてくださいませんか?
配列位置って何?
>>766 最小値のインデックスってこと?
%最小値
min(U)
%インデックス
find(U == min(U))
でどう?
>>768 なるほど!!
findをそういう使い方をするんですね。
わかりました。ありがとうございます!!
>>768 やってみましたが、納得いく答えが得られました。
ありがとうございます。
もう解決できたみたいだけど、 maxやminの戻り値は二つあって、 [value, index] = min(U); のように最小値の場所を得られるよ。
>>771 わざわざありがとうございます。
やっぱり、関数を把握できるようにならないときついかな・・・。
ちなみに、
>>768 と
>>771 は、次のばあい結果が違う。
1. 最小値の要素が複数あるとき
2. 全てNaNのとき
774 :
デフォルトの名無しさん :2006/06/12(月) 18:17:50
実験で撮影した動画(avi)の左上とかに、日付いれたいんですけど できますか?
それはここではないだろう
776 :
774 :2006/06/12(月) 19:49:26
>>775 あ、すいません。MATLAB使ってです。
一応、ImageAcquisitionToolBox、とImageProcessingToolboxあるんですけど
使えますかね?
777 :
ゆーき :2006/06/15(木) 14:40:15
すみません。。。 matlab初心者なのですが。。。 csapeで曲線を描きたくて調べたのですが、どうしてもcsape(X,Y,CONDS,VALCONDS) のVALCONDSに何を入れたらいいのか分かりません。。。 特異値とか特異条件とかが関係してくるっぽいんですが。 どなたかご教授願います。
778 :
デフォルトの名無しさん :2006/06/15(木) 15:55:38
質問させてください 2本の線をプロットする際、線同士が重なってしまうところは 後からプロットしたほうが表示されますよね。 これを防ぐ方法はないのでしょうか?たとえば少しずらして表示されるとか どなたかご教授お願いします。
780 :
デフォルトの名無しさん :2006/06/16(金) 15:31:25
関数を定義するコマンドはどのようにすればよいのかわかりません。 scilabではdeff('')でよかったのですが同じようなことをmatlabでするにはどのようにすればよいのでしょうか?
781 :
778 :2006/06/16(金) 22:18:18
>779 ご返信ありがとうございます! そう言えばそれでいけますね.ありがとうございました.
782 :
デフォルトの名無しさん :2006/06/17(土) 02:25:00
質問させてください。 プログラムを走らせているときにでる警告文を 表示しないようにするにはどうしたらよいのでしょうか? うっとおしくて困っています。 よろしくお願いします。
>>782 warning off
特定の警告を抑制するには
warinig off MATLAB:***
MATLAB:***の部分は、警告が出た後lastwarnで出る
784 :
782 :2006/06/17(土) 16:20:59
>783 ありがとうございます! かなり快適になりました!
785 :
デフォルトの名無しさん :2006/06/20(火) 15:14:27
教えてください matlabのプログラムで、特定の行に移動するように指定するには どうすればよいのでしょうか よろしくお願いいたします
786 :
デフォルトの名無しさん :2006/06/20(火) 17:16:09
すみません。 ある数値がNaNであることを判定するにはどうすればよいでしょうか? a=NaN とし、 a==NaN とすると0が返ってきて、判定できません。 どなたかご教示お願いします。
isnan(x)とか使えば良いんじゃね? ってかマニュアル読めば良いんじゃね?
a~=a
789 :
786 :2006/06/21(水) 11:15:34
>787 788 早速にありがとうございました。 >787 そうですね…。安易に書き込んでしまいました。申し訳ありません。 非常に助かりました。
790 :
ゆーき :2006/06/21(水) 14:31:15
誰か。。。 >777 のこと分かりませんか。。。?orz
ググったら一発で出てきたぞ
792 :
ゆーき :2006/06/21(水) 21:49:03
説明を読んだんですが「valcondsで指定された特異値」とか書いてあって。。。もう少し分かりやすい 感じで。。。どなたか。。。orz
793 :
デフォルトの名無しさん :2006/06/21(水) 23:22:52
名前: E-mail: 内容: どなたか教えてください。 Matlabでファイルを開くからfigファイルを開こうとすると エラー:==>open Invalid field name'OpenFig_gifdeltinu〜' と出力され、開くことができません。 さらに、その後に普通にplotするときもなぜかfigファイルが開けず、 matlabを再起動するまで一切のfigファイルを開くことができません。 上のInvalid〜のところで、ファイル名が逆(アベコベ)に表示されて いるのも謎です。 よろしくお願いします。
794 :
793 :2006/06/21(水) 23:24:46
すみません、上3行は無視してください
795 :
デフォルトの名無しさん :2006/06/22(木) 16:53:12
初心者なんですが、sinc関数をfftして 振幅をデータ数の半分で割っても、うまくいきません。 どうしたらいいでしょうか。
>>795 まず目的を書こう
振幅をデータ数の半分で割るという操作にどんな意味があるかは解らないけど
もしもよくある周波数-スペクトルのグラフ等を描くためのデータを作りたいのなら
fft関数の出力をabs関数で絶対値をとるといいよ
fft関数の出力は複素数が含んでいるからね
797 :
デフォルトの名無しさん :2006/06/22(木) 23:07:15
早速ありがとうございます。 周波数ースペクトルのグラフを書こうとしてます。 絶対値とってるんですが、うまくいきません。 参考書などを見て、データインデックスから周波数へのの換算と、fftデータから振幅の換算 を行っても期待する値が振幅では得られません。
799 :
デフォルトの名無しさん :2006/06/22(木) 23:58:18
>>798 うまく伝えられなくてすいません。 具体的な例を出すと、sinc(t)をfftすると幅1[Hz]、振幅1の矩形スペクトル になると思うんですが、振幅はそうなりません。 形は矩形になるんですけど・・・。
>>799 そのとおり の結果になるはずだし
現実にそのとおりの 結果だよ
今晩は寝た方が...。
801 :
デフォルトの名無しさん :2006/06/23(金) 00:53:03
>>800 そのとおりの結果でますか?
よければプログラムを・・・
802 :
ゆーき :2006/06/24(土) 20:17:42
す、すめません。。。 度々。。。 subplotで出力したfigureを保存したいのですが、print -depsやgset term postscript enhanced を使ってもできません(subplotでなければ無問題)。 ど、どなたかぁぁぁぁぁぁ。。。。。ご教授ください。
>>802 それはMATLABじゃなくてoctaveだよね。
Octaveスレで聞いてみたら?
804 :
ゆーき :2006/06/25(日) 23:16:52
octaveスレが見当たりません。。。。orz
ここだとスレ違い 総合スレいったほうがいい。
Octaveスレはunix板にあるよ。
808 :
デフォルトの名無しさん :2006/06/25(日) 23:56:33
MacでMatlab使ってる人っていないの?
809 :
ゆーき :2006/06/26(月) 00:02:49
みなさんありがとうございます。
ちなみにmatlabでsubplotを保存するにはどうするのですか?
あと、できれば
>>777 >>792 の質問も見て欲しいです。
お願いします。
>>808 ノシ
>>802 gsetでterminalとoutputを予め設定してからplotしてみたら。
>>808 Universal 対応してないから使ってない
812 :
ゆーき :2006/06/26(月) 18:38:29
>>810 gset term postscript enhanced;
gset output "a.eps";
replot;
としているのですがterminalの設定方法がわかりません。教えて下さい。
>>812 subplotはgnuplotのmultiplotモードを使う。
gnuplotはmultiplotモードではterminalを変更できない。
従ってsubplotコマンドを使用する前に
terminalとoutputを変更すればOKのはず。
これが希望する解決策でないことはわかるけど
エレガントな解決方法はわからない。
814 :
ゆーき :2006/06/26(月) 20:00:48
>>813 とてもありがとうございます。自分はエレガントなど求めておりませんので保存で
きればけっこうです。
ただ1つ問題が。。。
terminalとoutputの変更の仕方が分からない。。。(ハイパー素人のため)
subplotとしてではなくてグラフ1つずつ保存すると言うことでしょうか??
お願いします。
gset terminal postscript eps gset output "test.eps" subplotとplot色々 gset nomultiplot gset terminal x11 これでtest.epsに保存できる。
813, 815の回答はOctaveね。MatlabならGUIでできるでしょ。
817 :
ゆーき :2006/06/26(月) 21:20:06
octaveですのでその方法でやってみます。 ほんとにありがとうございました!!!!
Matlab 2006bマダー?
819 :
ゆーき :2006/06/27(火) 13:36:05
>>815 保存できました!!!!ありがとうございました!!
。。。が!!!事件です!!!!!グラフがほぼ壊滅状態に陥るほど劣化してしまい使えません。orz
やっとできたと思ったのに。。。
誰か救いの手をさしのべて下さい。
ちなみに
>>777 >>792 も見てもらえると有り難いです。
>>819 私はエスパーではないのでry
octaveについてはUNIX板か数学板の
octaveスレに
行けば詳しい人もいるかも。
821 :
ゆーき :2006/06/27(火) 20:06:04
>>820 ご親切ありがとうございます!!!
頑張ってみます!!
1 /| ___/ | ____ 0 | /1 |/ 0 -1 みたいなグラフを描く場合、どういう風に記述すればいいんですか? 途中で切り替える場合が出来ません。 ifを使って、 if -1<= t < 0 a=1; b=1; elseif 0 <= t < 1 a=1 b=-2 end x = a*t + b みたいな感じで記述したらどうかなーと思ってたんですが 値が後者に固定されてしまい全く出来ません 助けてください><;
「0<=t<1」は「0≦tかつt<1」の意味にはならない。 「0<=t」がまず評価され0か1に置き換えられ、 「0<1」または「1<1」が評価される。 お前の意図どおりの結果を得る式は「0<=t && t<1」。 しかしグラフを描くには、t=-2:1/256:2みたいな入力に 対応できないと困らないか? そのためには条件分岐を使ってはいけない。 isbitween01 = 0<=t & t<1; x(isbitween01) = t(isbitween01) + 1; みたいに書くべし。
824 :
デフォルトの名無しさん :2006/06/29(木) 22:34:00
窓関数を使おうとしてるんですけど、 hamming(sample_point) は使えるんですけど hanning(sample_point) だとscript hanningを関数として使ってください みたいなことがエラーで出ます。 初心者ですいません。 教えてください。
ハニング窓関数はhann
826 :
デフォルトの名無しさん :2006/07/04(火) 23:30:18
hannで大丈夫でしたー。 でも、窓関数関数自体のスペクトルがうまく出力できないー。
matlabからC言語で書いた関数をリンクさせたり参照したりすることは可能でしょうか? フリーのscilabはlink可能だったのですが研究でmatlabを用いて数値計算をしたいと考えています. よろしくお願いします.
できるよ。mexってのを調べてみるといい。
829 :
ゆーき :2006/07/07(金) 11:43:23
どなたかc-splineのcsapeを使って曲線を描くときのcsape(x,y,conds,valconds)の valcondsにいれるべき値とはどういったものかお教えください。お願いします。
すみません。質問です。 OBB(Oriented Bounding Box)で、物体頂点群から、 主成分分析をもちい(共分散行列つくって固有ベクトル)、 3つの軸を見つけることができたのですが、 直方体の物体に対する第一成分の軸が、最長の対角線上 になってしまいます。こうなるとAABBより悪い。。。 あとで考えてみると、確かに普通に適用するとそうなるのは わかったのですが、外国の論文みてると、どうやらこれを回避 する方法があるらしいのです。 ただ、英語がよくわからないので、もう一歩が読みきれません。 あとなにかのアイデアひとつと思うですが、 ポイントを教えてください。
>>831 すみません。撤回します。しかし、よくマルチって
わかるなぁ。全部マイナーなスレにのっけたのに。
834 :
デフォルトの名無しさん :2006/07/08(土) 13:33:34
matlabで音声を再生しながら プログレスバーを移動したり、再生部分の時刻を表示する ことは可能ですか?
∩___∩ . \ | ノ ヽ \ / ● ● | \| ( _●_) ミ 彡、 |∪| ,/.. ヽ ヽ丿/ /⌒| / \__ノ゙_/ / ===== 〈 _ノ ==== \ \_ \ \___) \ ====== (´⌒ \ ___ \__ (´⌒;;(´⌒;; \___)___)(´;;⌒ (´⌒;; ズザザザ
837 :
デフォルトの名無しさん :2006/07/08(土) 16:49:02
IIRフィルタ(2次)で、周波数を山形波形で出力させたいのですが、関数をどのようにしたらいいのでしょうか?
周波数を山形波形で出力させられるように係数を決める。
2006aで何が変わったの?
バージョンが変わった。
なるほろけっと
842 :
デフォルトの名無しさん :2006/07/16(日) 14:09:33
FFTした後の振幅って、その中のピークで規格化するのが一般的なんですか? 実際のパワースペクトル密度を得たいときはどうすればいいんですか? 勉強不足ですいません。よろしくおねがいします。
PERIODOGRAMあたりのドキュメントを読むべし。
844 :
デフォルトの名無しさん :2006/07/17(月) 20:56:13
ありがとうございます。 やってみます。
845 :
デフォルトの名無しさん :2006/07/19(水) 02:29:48
periodogramじゃなくて、FFTしたものにサンプルリング周期をかけてやることで 連続時間フーリエと同じ結果になりました。
Matlab R2006aのSimulinkで下記のようなモデルを作成するとします。 ●モデル: Test.mdl Test/Subsystem Test/Subsystem/ConstantA Test/Subsystem/BlockB 構成は、Subsystemのブロックパラメータで変数Aに値1を設定し、 ConstantAに変数Aを設定します。 ConstantAはBlockBにつなげてBlockBの入力にします。 コンフィグレーションはタイプ:固定ステップ、ソルバ:離散、固定ステップ:0.01 としてます。 ●質問: ここでシミュレーションを実行すると、時間ゼロではConstantAの変数A=0(NaN?) がBlockBに入力され、次のステップでA=1がBlockBに入力されているようなので すが、これを時間ゼロからBlockBにA=1が入力されるようにすることはできるの でしょうか。 BlockBはS-Function(Level2 Mファイル)で、変数Aで割り算しているところがあ るのですが、当初動作確認のためBlockBのブロックパラメータで変数Aを設定 して問題なく動作していたため、上記のように時間ゼロ時に変数Aで割るとゼロ割 になってしまいます。BlockBで工夫すればゼロ割は避けられますが、プログラ ムの都合上時間ゼロでConstantAの変数Aが確定している方が良いです。 なお、実際作成しているモデルはブロックパラメータが複数有り、複数のConstant 出力をMuxしてBlockBに入力しています。
847 :
デフォルトの名無しさん :2006/07/21(金) 15:32:08
MATLAB初心者中の初心者です。起動の仕方と簡単なコマンドしかわかりません。 今回、エクセルのデータ(xとyの値が50個ずつくらい)をMATLABでプロットしたいんですが、 データの読み込み方もそれをプロットするやり方もわかりません>< webで調べても難しいことばっか言っててわかんなかったです… こんな私にどなたかご教授ください〜
むりむり。
>>847 皆に酷評されてるけど それくらい自分で努力せにゃあかんよ
最低だぞー
852 :
847 :2006/07/24(月) 11:46:38
初心者中の初心者ですよ…850さんのリンクは以前から何度も見ていますが、 さっぱり何を言っているのか泣 今回はしかたなく、エクセルのデータをテキストデータにして、 a=dlmread('データ') x=a(:,1) y=a(:,2) plot(x,y) ってやりました。 問題は、 x1 y1 y2 … yn x2 y1 y2 … yn x3 y1 y2 … yn : : っていうデータで、x1とx2の間のxは等間隔でy1〜ynと対応しています。 これをきちんと、xとyのグラフにプロットするにはどういうふうにしたらいいんでしょうか。 バカかと思われてもしかたありませんが解決策を教えてください…
はぁ?対応してるんだったら x1 y1 x2 y2 x3 y3 . . xn yn じゃねーの?
854 :
デフォルトの名無しさん :2006/07/24(月) 12:13:58
説明が下手でした。 x1とx2の間が等間隔なんですが値がなく、それとy1〜ynが対応してるんです… XYDATA=(X++(Y..Y)) っていう…。それをきちんとxとyのグラフにプロットがしたいんです
>>850 回答ありがとうございます。私が作成したMファイルに問題があったようで、
直接フィードスルーがfalseになったままだったのが原因でした。
trueにしたところ無事t=0で入力端子からの値が確定しています。
ただ、t=0の一回のみ実行のファンクションInitialConditionsやStartでは
入力端子からの読み込みはできないようで、結局Outputsファンクションで
block.CurrentTime==0のときだけ入力値から初期化するようにせざるを得
ないようです。Startで入力値で初期化できたらスマートだったのですが。
なお、ICはt=0のときのみ値を変えたい場合に利用できるようで、ひとつ勉
強になりました。
856 :
デフォルトの名無しさん :2006/07/26(水) 23:30:18
>>852 xnにones()を掛ければ、ynと同じサイズ になるよw
あとは行ごとに列ベクトルに変換して、 cat()で Endかな?
matlabで年間の利率5%で100万を10年預けたらいくらになるかって プログラムどうやって作るの?
859 :
デフォルトの名無しさん :2006/07/28(金) 01:49:52
2つの信号のmagnitudeどうしとphaseどうしを subplotで別のウィンドウに表示するには どうすればいいか教えてください…
860 :
ど素人 :2006/07/28(金) 01:59:56
参考書にてわからない問題がありました。次のプログラムって日本語でどう説明できますか? ぜひお願いします。 A=new Array(3, 8, 19, 20, 22, 24, 45); i=0; j=A.length-1; a=19; k=Math.floor((i+j)/2); while(i<=j){ if(A[k] == a){ break; } else if(A[k] > a){ j = k - 1; } else{ i = k + 1; } k = Math.floor((i+j)/2); } if(i>j) k=-1; document.write(a," ",k);
>857 1000000 * 1.05^10
いまどき5%の利回りってありえないんだけど
1000000 * 1.0025^10
867 :
デフォルトの名無しさん :2006/07/29(土) 15:21:30
ある無限ループの処理を実行させてて、ボタンを押したら 止まるというプログラムを書きたいのですが、 その場合、どの部分でも止めたらいいわけでなく、排他制御というか ある箇所までは絶対に処理を行って欲しいのですが、 このようなプログラムはMATLABで可能ですか?
>>867 ボタン押したときにフラグ立てて
終了したいところで判定すればいいんじゃない?
わかった。
870 :
859 :2006/07/30(日) 13:20:36
>>866 すみません、元の信号と、フィルタ処理をした後の2種類の信号があって、
周波数を横軸にしたmagnitudeのグラフを2種類並べたfigure1と、phaseのグラフを2種類並べたfigure2を別々に表示させたいんです。
1つの信号の周波数特性自体はfreq関数で表示できるのですが、上記のようにして利得と位相どうしを比較するfigureを作りたいです。
>>870 hold と subplot の組合せで
872 :
859 :2006/07/31(月) 19:05:09
レスありがとうございます。 holdだと重ねて表示されてしまいますね、縦に並べて表示したかったんですが…。 でもありがとうございました!
subplotも教えてもらってるじゃん
874 :
デフォルトの名無しさん :2006/08/01(火) 14:53:42
matlabでRのパッケージを使うことはできるでしょうか? MATLAB R-linkでRの関数は使えるようになったんですが。
epsで保存したときに、画面上で見た状態と違う形(文字の場所など)で保存されるのは、仕様ですか?
>875 仕様です。 画面表示と印刷(含EPS)では違う描画ルーチンを使っているようで、 グラフのグリッド幅なんかも違ってきますよね。
Symbolic Math Toolでindicator fuctionって作れますか? uをsymbolとして、 if u >= 1, a=1 else a=0 end みたいなことをやりたいんですが。。。 こんな感じでやると「'>='は'sym'classには定義されてない」って怒られます。
878 :
デフォルトの名無しさん :2006/08/05(土) 21:42:28
質問じゃぁないけど forル−プ+textreadで、20Mのテキストデ−タを読ませたら 完了するまで約5Hかかった。(tic toc 計測) 即刻、forル−プはずして、textreadのオプション使用したら 約2minで完了。 MATLABのforル−プは怖っ。
正規のライセンスじゃないとそうなります。
嘘は言ってないが 正規のライセンスでもそうな(ry
ライセンスの問題じゃあない。 for...endはBigSizeのデ−タ処理には向かない。 PCのパフォ−マンスで改善はされるけど。 使わないのが賢明。 工夫。工夫。 さ。
882 :
デフォルトの名無しさん :2006/08/11(金) 23:38:16
mexの作りかたの初心者向け解説を教えとくれ。とりあえずとり昔のcプログラムをmex化できればよい
884 :
デフォルトの名無しさん :2006/08/17(木) 11:42:19
MATLAB Compilerで mcc -m xxxx.m とコンパイルしたファイル群をMATLABのないPCで実行しようとすると 「MCLMCRRT74.DLLが見つかりません」 と言われるんですが、どうしたらいいんでしょう。 問題のDLLは見つかったんですが、同じディレクトリに入れて実行すると エラーメッセージさえ出さずに異常終了します。 MNTALABは7.2.0.232 (R2006a)、MCCはV4.4 (R2006a)です。
885 :
デフォルトの名無しさん :2006/08/17(木) 11:45:23
言い忘れましたが、コンパイル側も実行側もWInXPです。
887 :
デフォルトの名無しさん :2006/08/29(火) 15:04:23
Matlab初心者ですが。 Mファイルを人からもらってそのソースコードを見たいのですが、Editorで開いても文字化けして見ることができません。誰か教えて下さい。よろしくお願いします。
ノートパッドで見れますん
mccで作成したスタンドアロン実行ファイル実行時に展開される *.mファイルは、暗号化されている。
伝達関数からIIRフィルターの係数を直接求める方法知りませんか? (s^2 + Xs + 1)/(s^2 + Ys + 1)みたいな伝達関数から B=[なんたらかんたら] A=[うんたらちんたらら] みたいに一発でもとめたいんですけど。
MATLABで演算子の定義ってできるんでしょうか。 例えばインクリメントの++をMATLABでも使えるようにするとか… すでに存在するの2項演算子の「+」ならplus関数をオーバーライドすればいいみたいですが、 存在しない演算子を新たに定義することは可能なんでしょうか。
>>891 答えられない香具師は書かなくていいです。わかりやすく書ける人だけ書いてください。
894 :
デフォルトの名無しさん :2006/09/04(月) 01:13:17
sinc関数に窓関数がかかった波形の面積を積分して求めたいんですが、 何かいい方法はないでしょうか? よろしくお願いします。
895 :
ららら :2006/09/04(月) 01:26:44
>>890 そのまま分子分母の係数がフィルタ係数になるはずだが。
>>893 お前自身も「答えられない香具師」じゃないか。ここに書かなくていいです。
898 :
デフォルトの名無しさん :2006/09/04(月) 04:50:07
>>897 ありがとうございます。
でも、なんで2重なんですか??
899 :
デフォルトの名無しさん :2006/09/04(月) 14:26:29
MATLABは医用ではどんなことに使われているんですか?
901 :
デフォルトの名無しさん :2006/09/05(火) 00:34:29
>>900 なんとかできました。
あと、数式じゃなくてfftして得られたグラフやデータを積分することもできるんでしょうか?
式ではなくてデータを積分するには,数値積分という方法があります。 台形公式、ガウス積分,シンプソン法なんかでググれば出てくると思います。
903 :
デフォルトの名無しさん :2006/09/05(火) 02:33:09
quadを使ってシンプソンの求積法で関数を積分するとき、 パラメータの刻み幅はどこで決まるんですか?
904 :
デフォルトの名無しさん :2006/09/05(火) 02:34:47
quadを使ってシンプソンの求積法で関数を積分するとき、 パラメータの刻み幅はどこで決まるんですか?
quadは刻み幅の指定は出来ないかと。 刻み幅を指定して積分を行いたいなら,自分で積分のルーチンを作るしかないと思います。
906 :
デフォルトの名無しさん :2006/09/05(火) 03:58:13
quadはどれくらいで計算してるんですか?
ブラックボックスだから何とも・・・
908 :
デフォルトの名無しさん :2006/09/05(火) 22:57:02
MATLABってなに?
910 :
デフォルトの名無しさん :2006/09/09(土) 03:07:25
matlabの関数として窓関数はどれが定義されてますか?
意味は自分で調べて @bartlett - Bartlett window. @barthannwin - Modified Bartlett-Hanning window. @blackman - Blackman window. @blackmanharris - Minimum 4-term Blackman-Harris window. @bohmanwin - Bohman window. @chebwin - Chebyshev window. @gausswin - Gaussian window. @hamming - Hamming window. @hann - Hann window. @kaiser - Kaiser window. @nuttallwin - Nuttall defined minimum 4-term Blackman-Harris window. @rectwin - Rectangular window. @tukeywin - Tukey window. @triang - Triangular window.
>>911 @hanning - Hanning window
も仲間にいれてあげて。
@gausswin - Gaussian window.
@blackmanharris - Minimum 4-term Blackman-Harris window
これあったんだな。自分で実装して使ってた。
ところで、上のほうにある
startup.mでデフォルトの線の太さを指定って需要ある?
必要なら今度学校から書き込むが。
914 :
デフォルトの名無しさん :2006/09/12(火) 14:16:56
初歩的な質問で申し訳ございません。 ライセンスマネージャーを起動しようとしても --------------------------------------------------------------------- Checking license file for local hostname and local hostid . . . Taking down any existing license manager daemons . . . sort: オプションが違います -- 1 詳しくは `sort --help' を実行して下さい. /usr/local/matlab/etc/lmdown: line 160: echo: write error: パイプが切断されまし た Killing license manager daemon processes . . . (localhost.localdomain) process id = 3898 killed . . . (/bin/sh) Starting license manager . . . Debug logfile = /var/tmp/lm_TMW.log Waiting 300 secs for MATLAB vendor daemon to come up . . . Type your interrupt character (usually CTRL-C) to quit. Time = 3 secs : still waiting . . . Time = 30 secs : still waiting . . . -------------------------------------------------------------------- のようなメッセージが出てきて起動できません。 何が原因なのでしょうか? よろしくお願いします。
916 :
デフォルトの名無しさん :2006/09/13(水) 14:24:39
>>915 何とか解決できました。
すみませんでした。
917 :
デフォルトの名無しさん :2006/09/13(水) 14:55:58
matlabで文字を画像(ビットマップ)にすることってできますか? つまりたとえば任意のTrueTypeフォントで「A」という文字を300x300ドットの ビットマップ画像(行列)にするとかいうことをしたいのですが・・・
918 :
デフォルトの名無しさん :2006/09/26(火) 11:55:23
すみません、出来そうで出来ずに煮詰まっているので質問させていただきます。 A=['a' 'b' 'c'] B=[1 2 3] という二つの変数があった時、 Bの名前を、Aの要素に変えることはできますか? 似ているんだけど、 または、forループを使って、 変数Aの要素が名前の新変数、a,b,cを3つ作ることはできますか?
919 :
デフォルトの名無しさん :2006/09/27(水) 11:05:40
棒グラフで、 例えば、 y=[-2 -4 -6 -4]; bar(y); としたとき、 ゼロからのプロット(軸の上から下に向かって表示)ではなく、 負の無限大?から(軸の下側から上に向かって表示)プロットしたいとき どのようにすればよいか 分かる方いましたら教えてください。
920 :
デフォルトの名無しさん :2006/09/27(水) 18:06:27
質問させて下さい ○とか×でデータ点をプロットするときに, ○,×の大きさを変更することはできるのでしょうか? 'FontSize'だとエラーではじかれるし, 'LineWidth'だと輪郭が太くなるだけなので困っています. フィギュアプロパティでフォントサイズを変更すれば,できることは できるのですが,プログラムで書きたいのです. どなたかご教示をお願いいたします
タイプミス 'MarkerSize'
923 :
920 :2006/09/28(木) 16:58:35
>922様 ありがとうございました!助かりました。
924 :
デフォルトの名無しさん :2006/10/04(水) 07:22:43
印刷する際に、用紙の設定を標準でletterにする方法を教えてください
それはプリンタードライバの設定の問題で、MATLABとは関係ないんじゃないか?
926 :
デフォルトの名無しさん :2006/10/04(水) 22:53:06
質問させてください matlabでポリガンマ関数って扱えますか? よろしくお願いします
927 :
926 :2006/10/04(水) 23:15:45
すみません、解決しました psiですね
928 :
デフォルトの名無しさん :2006/10/05(木) 05:16:09
はじめまして。 初めて書き込みさせていただきます。 specgramの結果にスプラインをかけて、分解能ブロックごとに色づけではなく 滑らかに表示することはできないのでしょうか? どなたか行っている方が いらっしゃいましたら、ご教授お願いいたします。
929 :
デフォルトの名無しさん :2006/10/05(木) 15:22:03
すみません、教えてください matlabでfunctionのなかにfunctionを定義することってできますか?
>>929 できますよ。
一行目とそれより下に二つ以上書いて、試してみて。
Linuxで学校のmatlabを使ってるんですけど、
Signal Processing Toolboxのライセンスがあるとか、って
どうやって確かめられるんでしょうか。
学校に聞くのはなしで。
>>929 一行目とそれより下、合わせて2つ以上です。ごめん
932 :
デフォルトの名無しさん :2006/10/05(木) 16:38:53
>>929 普通にsmoothingフィルタかけてみたら?
>>930 HELPでSignal Processing ToolboxのHELPが出れば、めでたしめでたしだー。
934 :
929 :2006/10/05(木) 23:13:46
>>933 そうなのか?
忘れたが、verだったかversionだったかで出るのではないか?
そのものズバリのlicenseなんかもあったような…
>>930 license.datの中身にどのツールボックスが入ってたか書いてる気がする。
INCREMENT Signal_Toolbox
とかだったかな?記憶がはっきりしない。
937 :
困ってます :2006/10/07(土) 08:32:53
くだらないことをきいてすみません、 自分のMATLABでfevalを使用すると >feval(f,2) ??? 入力引数 'x' が定義されていません. と返ってきます。x=2じゃないのですか? それでいつもfevalを回避してプログラム作る羽目になっているのですが これは一体何が原因かわかりません。どなたかアドバイスください。
feval('abs',-2) でうごいたけど?
939 :
困ってます :2006/10/07(土) 23:34:10
>938 レスありがとうございます。 >feval(f,2) ではなく >feval('f',2) としなきゃいけなかったんですね。 馬鹿らしいけどマニュアルにはfeval(functionname, x)と書いているのが 多くて・・・。多謝です!
>>939 多くの例はたとえば
f = 'abs';
feval(f, 2);
という状況を意味しているのでしょう
941 :
困ってます :2006/10/08(日) 02:13:21
なるほど、納得がいきました。 難しいプログラムも結構くだらないところでつまずいているものですね。 というか自分がどじなだけだろうけど。 ご示唆ありがとうございました。
942 :
デフォルトの名無しさん :2006/10/09(月) 23:27:34
もしかして、とあるtoolboxをインストールしてあるパソコンのtoolboxフォルダを単に他のパソコンにコピーしただけでは そのtoolboxは使えるようにならない?
>>942 なるわけない。
ライセンス(License.dat)でインストールしているtoolboxは管理されてる。
日本語でおk
license.datっていうファイルに使えるtoolboxが記述されてるんだよ
違う。ライセンス(License.dat)でインストールするのだよ。
947 :
デフォルトの名無しさん :2006/10/15(日) 16:20:31
MATLABはOctaveとどう違うんだろう
なまえがちがうでそ
値段も違う
950 :
デフォルトの名無しさん :2006/10/19(木) 01:14:28
plotyy(x1,y1,x2,y2) で描いたx1軸とx2軸の 両方を日付目盛りにする 方法を教えて下さい お願いします
組み込み関数を使ったときに, 引数のサイズがでかいとかいわれるんだけど… なんじゃそりゃー!
なぜそこでその関数名やら、どのように使ったのかを書かないのか。 日記ならご自分ブログでどうぞ
んじゃ書いてみます. fminsearchの初期値つまり求めたい変数に数百×数百(千だったかも)の行列を突っ込んだ.
>>953 試してないけど fminsearch なら確かに妥当っぽい動作な気もする。
初期値からちょっと変えて計算、ちょっと変えて計算ってやるんだろうし。
そういう関数もあるんだね. optimization toolbox持ってないとダルイのね・・・
最適化Tool boxほしいなぁ
957 :
デフォルトの名無しさん :2006/10/22(日) 20:16:58
matlabにsleepに相当する機能はありませんか? octaveだとあるのだが。 UNIX版matlabだと system('sleep 10'); なんてやってますが、 windows版でできる方法はないでしょうか。
pause
959 :
デフォルトの名無しさん :2006/10/23(月) 05:04:13
すみません、ハンドル関数オペレーター@を使いたいんですが、 次のように出てしまいます。どこがおかしいのかわかりません。 どなたかアドバイスいただけませんか。 >>f=@(x,y) x*y ??? f=@(x,y) x*y | エラー: "identifier"が見つかりません。"("が見つかりました。
960 :
デフォルトの名無しさん :2006/10/27(金) 05:43:27
matlabで棒グラフを書くときに、それぞれの棒グラフの色を自由に設定する方法ってどなたか分かりますか? デフォルトだと、青、緑、赤茶、みたいな設定になっていて、それを変えたいんです。 教えてください!!!お願いします!!!
961 :
デフォルトの名無しさん :2006/10/27(金) 06:57:20
あ、すみません。もうひとつ。 棒グラフの軸の設定はどうやったらできるかわかりますか。 例えば、yの値を0から10までにしたい・・など・・。
0 から pi までの(pi は含まない) pi/4 間隔のベクトル(数列)を楽に作るにはどうしたらいいでしょう? やりたいことは 0:pi/4:pi みたいなことなのですが、pi を含んでしまうもので。
0:pi/4:pi-pi/4 じゃ駄目?
うーん、本当は <= を < にするような方法を期待していたのですが、そういうもんでしょうか。 ありがとう
行列データを可視化させたいのですが, 非負実数は黒く 負実数は白く みたいなイメージのだしかたってありますか?
俺はバカだから訳わかんね。こういう事かな。 a=rand(1,10)-0.5; %正負のある行列を用意 plot(find(a>0),a(find(a>0)),'*k',find(a>0),a(find(a<=0)),'*w') %正の数だったら黒く、負の数だったら白く*でプロット
plot(find(a>0),a(find(a>0)),'*k',find(a<=0),a(find(a<=0)),'*w') に訂正。ほんとにバカだ。ハハハ
plotよりimagescとかimshowみたいな表示はないかしら
>>966 ,967
にお礼言うのを忘れてた.ありがとう.
動画のキャプチャー画像をまとめて処理しようとしてるんですが、 imreadすると自動的に縦×横×RGBの3次元配列になってしまいます。 これに1次元さらに加えて、それが何枚目の画像かを分かるようにするにはどうすればいいでしょうか?
971 :
デフォルトの名無しさん :2006/10/30(月) 12:04:50
相関行列を「corrcoef」で求めた際、「警告: ゼロ割です」と出ます。 そのままその固有ベクトルを求めようとすると、 「??? エラー: ==> eig EIG への入力は、NaN または Inf を含まなければなりません。」 と出ます。 どうしたらエラーを出さずに固有ベクトルを求めることができるのでしょうか?
>>965 Aをその行列として,
imagesc(A, [min(A(:), max(A(:)))]);
colormap(gray);
imagesc(A, [min(A(:), max(A(:)))]); は magesc(A, [min(A(:)), max(A(:))]); に訂正
>>960 =961
色を全てを自由にって訳には行かないだろうが、
インスペクタでいじればOK.縦軸を0から10にするには
set(gca,'ylim',[0 10]);
カラーを直接いじる方法もあったがちょっと思い出せね。
>>970 4次元行列にしてもよし、セルを使ってもよし。
画像サイズが異なることを想定してセルにしたほうがいいな。
3次元データx,yがあった場合、
z{1} = x;
z{2} = y;
みたいな感じでOKよ。
>>971 相関行列にゼロ割りによるInfが含まれている。
相関行列計算式は省くが、分母が0になっていることが原因。
「EIG への入力は・・・」は言葉通り受け取ればよし。
つまり相関係数に0が含まれている公算が大だ。
回避する方法としては、入力行列に影響が出ない程度微細なノイズを
加えることが考えられる。詳しいデータ無いからこれ以上はわかんね。
MATLAB6.5で a='method' と打ってみてびびった。
976 :
デフォルトの名無しさん :2006/11/01(水) 18:24:37
matlabで%を使うとその行はコメントアウトになり、プログラムは 読み込まないと思います。 ・・その%の使い方ではなく、文字として「%」を表示させたいのですが、 どうしたいいのでしょうか。。。
%% とか ¥% とかじゃないの?
978 :
デフォルトの名無しさん :2006/11/03(金) 23:26:19
>977 ありがとうございます。はい、¥%とか使ってしてみたんですが、うまく表示されなくて。。。 title('5%'); の場合はできるんですが、 title(sprintf('%d \%',j*5),'FontSize',12); のように使うとできないんです・・・。 使っているVers.は7.0.1なんですが。。。
4 8 16 32 64 みたいな等比数列を作りたいのですが、 2:3:19 的に楽にできる方法ってありますか?
2 ^ (1:10) とかで。
ごめん、ピリオド抜けてた。 2 .^ (1:10)
982 :
977 :2006/11/05(日) 14:15:07
>978 だから「%%」だってば。
>981 なるほろけっと。とんくす
matlab で開いているディレクトリをエクスプローラで開く、ってできないですかね? もちろん win の話です。
あ、もちろん matlab からエクスプローラ起動して、って意味です。
eval(['!explorer "' pwd '"']); とかどう?今手元にMatlabないから試してないけど。
>>986 ほぇー。そんな手があるとは。動いた。ありがとう。
あ、 !explorer . でできた。なんにしてもありがとう。
989 :
デフォルトの名無しさん :2006/11/07(火) 00:36:06
公共交通機関に関する研究を行ってる者なのですが、 先日MATLABを使い始めまして MATLABでどうにか公共交通機関のシミュレーションを行いたいと思っています。 線の上で四角が移動するというようなプログラムを作りたいのですがどうすればよろしいでしょうか? よろしくお願いします。
( ゚д゚) 、ペッ
991 :
デフォルトの名無しさん :2006/11/08(水) 14:06:18
MATLABで筆跡認識のプログラムを作りたいと思っています。 先日MATLABを使い始めて、取り込んだ筆跡データをSOMでマップ化(分類)することには成功したのですが・・・ この先、どうやって認識させればいいのでしょうか? 誰か、アドバイスを宜しくお願いします。
ほえ?学習できたんだから、同じように新データにたいして classification できるでしょ? ってか matlab スレ。
>>922 レスありがとうござます。
どこで聞けばいいのか分からなかったので、すいませんでした。
classificationってなんでしょうか?
あと、認識→認証の間違いでした。
>>993 認識、認証は対した問題じゃないけど
Classification(分類)とClustering(クラスタリング)はかなり意味が違うこの分野の用語
>>991 でマップ化(分類)といっているけど、SOM は Unsupervised(教師なし)のはずで、
たぶん教師なしで、”クラスタリング”したんじゃないかと思う。
そこを説明なしで区別したかったので、分類という言葉を使いたくなかった。
995 :
デフォルトの名無しさん :2006/11/08(水) 23:28:50
>>944 レスありがとうございます。
用語が全然分かってませんでした。
あと、質問文が間違ってました。
筆跡データをMATLABのSOM TOOLBOXというものを使い、クラスタリングしてマップ化したものから、
新たに筆跡データに入力して一番類似しているデータを探し出すのはどうしたらいいのでしょうか?
ほえ?学習できたんだから、同じように新データにたいして classification できるでしょ? ってか matlab スレ。
ヒント:somtoolbox の autolabel
(・∀・)
999 :
デフォルトの名無しさん :2006/11/09(木) 12:06:53
(´ー`)y━・~~
1000 :
(´・д・`)DOn'03 ◇JcpHA18Tqs :2006/11/09(木) 12:07:39
日テレはルパンにひどいことをしたよね(´・ω・`)
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。