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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:04/10/09 15:37:56
2get
3デフォルトの名無しさん:04/10/09 17:22:46
おおこんなスレが! 僕は大学で音響の研究してます。
このスレにお世話になることあると思うんで、盛り上げていきましょう。
4デフォルトの名無しさん:04/10/09 19:15:13
ほう。こんなスレが。
って、俺はほとんど使ったこと無いけど。

普段は octave 使ってる。
5デフォルトの名無しさん:04/10/09 22:53:51
僕も大学で音響の研究してます。
もしかしたら >3 と知り合いかも。
・・・って、音響やっててMatlab使っているなんてたくさんいるか。
6デフォルトの名無しさん:04/10/10 02:01:11
げっ。俺も音響でMATLABつかっているorz。
>>3>>5が同じ研究室のヤツだったらやだな
7デフォルトの名無しさん:04/10/10 07:52:33
俺はFortran90使っているけど、行列の扱いやすさだとやっぱりMATLABの方が上なんだろうか?
かくいう俺も音響関係の研究室に所属。信号処理関連のライブラリは魅力的だなあ。
8デフォルトの名無しさん:04/10/10 09:36:53
以前音響の研究室でMatlab使ってた。
その研究室の先生が教授を辞めてしまった。
9デフォルトの名無しさん:04/10/10 09:38:01
>>7
FORTRANと比べたらそりゃそうだろう。
けどC/C++/Javaなどと比べたら(ry
10デフォルトの名無しさん:04/10/10 09:38:32
>>5-6
東京23区内か?
11デフォルトの名無しさん:04/10/10 09:39:07
音響以外にもデータの解析にMATLABつかってる研究室あったな。
12デフォルトの名無しさん:04/10/10 09:40:36
MATLABでオブジェクト指向やってみようと
思ったらPerl程度のものしかできなくて萎えた
13デフォルトの名無しさん:04/10/10 09:49:03
MATLABの嫌なところは
ソースをぱっと見ただけで
それが関数であるのか、配列であるのか、ベクトルであるのか
解らないところだね。
C/C++/Javaならすぐにわかるのに 
 
14デフォルトの名無しさん:04/10/10 10:26:10
>>5
いくら音響やっててMATLAB使ってるのがたくさんいるからといって
MATLABだけで音響ソフトを作るのはハズカシイ
15デフォルトの名無しさん:04/10/10 11:02:47
そうそう、しょせんMatlabはプロトタイピング用です。
思いついたアイディアをすぐに形にできて、実験できるのがいいところ。
その後に自分で書くなり外部のプログラマを雇うなりしてC/C++で最適化します。
16デフォルトの名無しさん:04/10/10 11:27:41
プロトタイピング用というより解析用。

今まで音響の研究室見てきたけれど
雇ってもろくなもんができない罠。
本格的にやろうとすればするほど金がかかるからね。
100〜500万じゃ雇っても無駄。

プログラマという職についてみればあのソフトには何100万じゃ足りないということがわかてしまう

17デフォルトの名無しさん:04/10/10 11:29:51
古くから音響系やっている者は
自分の研究成果を組み込み機器に取り入れたがるうえに
かつ考え方が古いので
いつまでもC言語にこだわる。
18デフォルトの名無しさん:04/10/10 11:32:00
100万でソフトを作らせて
1人月30万で3人でチーム組んだとすると
一ヶ月でその100万が消えてしまう。
その三人が無能だったら使えないソフトしか作れない。
19デフォルトの名無しさん:04/10/10 11:34:15
MATLABをこよなく愛する人たちは
対話形式やウィザード、スクリプトが大好きで
設計が苦手な傾向にあるようだ。

彼らには型の違いに厳しいC/C++/Javaという言語が苦手だという傾向もある。

20デフォルトの名無しさん:04/10/10 12:09:18
MATLABの開発環境で
MATLAB付属以外のものを
使ってる香具師いる?
21デフォルトの名無しさん:04/10/10 14:42:02
僕は制御をやっています。
個人としてはMatlabよりはCを使うことが多いんだけど、
Matlabの優秀さは認めています。
基本的な数学がわかっていればプログラミングの訓練を
しなくても短期間でそれなりのことができちゃうからね。

Matlabの初(?)スレとしてはお勧め書籍とか値段とかを書くのがよいのかも。

22デフォルトの名無しさん:04/10/10 14:46:48
MATLABによるDSP入門

この本、ほとんどがDSPのことばかり
でMATLABのことやソースコードは
ほとんど載っていなかった。
23デフォルトの名無しさん:04/10/10 14:56:19
MATLABは大規模プログラミングに向いていないから
熱心に使おうという気が起きない。
24デフォルトの名無しさん:04/10/12 05:38:26
matlabは主にデータのプロット用だね

プログラムはCとかで書いた方が速いし
25デフォルトの名無しさん:04/10/12 13:07:21
>>24
> matlabは主にデータのプロット用だね
あはは。ちょっと贅沢なgnuplot、ってところか。
26デフォルトの名無しさん:04/10/12 19:35:39
>24
学会発表とか授業のプレゼン準備とかにMatlabでプロット作成してます。
EPSに吐けるし、いろいろと細かいところまでいじれるのがいいですね。
27デフォルトの名無しさん:04/10/14 00:35:38
>>24
同じことをやってるひとがいるとは
28デフォルトの名無しさん:04/10/15 09:14:19
水流の3次元データの可視化の方法がよくわかりません。
データ形式はどのようなものを用意して、どのようなコマンドでプロットすればよいのでしょうか?
29デフォルトの名無しさん:04/10/16 00:11:26
自分は制御のシミュレーションで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 を使えている人いますか?
33デフォルトの名無しさん:04/10/18 22:56:39
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
つっかもうぜ!
36デフォルトの名無しさん:04/10/21 20:13:48
>>33
左辺が対称行列じゃなきゃダメ。
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ループとか
使って効率化くらいしたらどうだ
っていいたくなる奴ばかり。

41デフォルトの名無しさん:04/10/24 13:18:53
>>29
シミュレーションに使うには
重たくて使いにくそうだな
42デフォルトの名無しさん:04/10/24 13:19:17
>>37
つーか数値計算や信号処理の本でも嫁
43デフォルトの名無しさん:04/10/24 13:19:51
>>39
シェルで
demoと入力して
エンターを押せ

そこに答えが見つかる
44デフォルトの名無しさん:04/10/30 15:51:15
getframeでアニメーションを作成しているのですが、作成中は、matlabを最前面に表示しておかなければならず、
他の作業ができないのですが、matlabでディスプレイ上に表示させないで、aviムービーを作成することは可能でしょうか?
45Mach Go! Go! ◆6opQoo0UZg :04/10/30 19:56:04
>44
表示内容はなんですか?
画像データとかであれば表示させずにimage変数内で用意して書き出せるんですが。
4644:04/10/30 23:44:28
>>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
47Mach Go! Go! Go! ◆6opQoo0UZg :04/10/31 02:31:59
調べてみたら、画面表示なしにMatlab Tech Noteに載っていました。

ttp://www.mathworks.com/support/tech-notes/1200/1204.html#Section%2010

二次元ではできてももしかしたら三次元だとできない、とかそういう制約があるかもしれませんね。
48Mach Go! Go! Go! ◆6opQoo0UZg :04/10/31 02:32:52
途中で書き込みしてしまいました。

>調べてみたら、画面表示なしにMatlab Tech Noteに載っていました。

調べてみたら、画面表示なしにムービーを作る方法がMatlab Tech Noteに載っていました。
49デフォルトの名無しさん:04/10/31 03:36:42
MATLABの java がエラー吐くのは微妙に気になる。

ところで、皆は行列計算時に Out of memory が出たら
どう対応してる?よく repmat でメモリ不足して困る。

今のところ行列を適当に小行列に分解し、for ループで
まわしてるんだが、やはり遅さは否めない。

なんとかならんものかのぅ...
50デフォルトの名無しさん:04/11/02 07:01:05
>>49
>どう対応してる?
そっち面がシビアなものにはMatlabは使わない。
51デフォルトの名無しさん:04/11/02 17:27:10
>>32
以下を参照。
http://www.linuxquestions.org/questions/showthread.php?s=&forumid=7&threadid=183462
www.blackdown.org からj2re1.3.1をとってきて入れて、適当にパスを張って
ln -s /where-you-install-blackdownjava/j2se/1.3.1/jre /local-matlab-dir/sys/java/jre
環境変数を
export LD_ASSUME_KERNEL=2.4.19
とすれば、fedora core 2でmatlab12が動くようになる。
多分、上のリンクの
export LD_PRELOAD=~/libcwait.so
の部分はやらなくてもうまくいった。
52デフォルトの名無しさん:04/11/02 19:09:34
>>47さん
どうもありがとうございます。無事できました。
が、サイズがとても小さいのですが、大きくする方法はないのでしょうか。
GUIの場合は、windowを大きくすれば良かったのですが...
53デフォルトの名無しさん:04/11/03 01:43:38
>>50
そうか...

そう大規模でもないんだがなぁ。たかだか400サンプルを
もとに計算しているだけだが、如何せん途中で大規模な
行列が生じるためにOut of memory...

ネックになっている行列操作だけ C で書いて走らせるか
なぁ。Optimization Toolbox が使いたいから、MATLABを
諦めきれん。
54Mach Go! Go! Go! ◆6opQoo0UZg :04/11/03 04:13:48
>49
メモリ管理に関してのTech Noteなんてのを見つけましたが、参考になりますでしょうか?
ttp://www.mathworks.com/support/tech-notes/1100/1106.html

「変数は連続したメモリ空間にしか確保できないので、メモリを大量に使用することが分かっている場合は、あらかじめhoge = zeros(n,m)で確保しておくべし」ということらしいですが。
55デフォルトの名無しさん:04/11/03 17:42:42
ガウスノイズに対して、帯域制限フィルタをかけて、滑らかな曲線にするような・・・
そんなフィルタ、何使えばいい?
56Mach Go! Go! Go! ◆6opQoo0UZg :04/11/03 22:23:27
単純なIIRフィルタじゃだめでしょうか?
[b, a] = butter(3, [0.4 0.6]);
y = filter(b, a, x);
57デフォルトの名無しさん:04/11/04 01:37:50
>>54
わざわざ探してくれてありがとう.

扱う行列がでかすぎるのが問題なんだよね.
WS.調べたけど,1Gメモリ積んでても連続領域が460M
ちょいしかなかったのが原因だろうな.Windows 起動
時でそれなので,460M を越えないサイズで計算させる
しかないね.

せっかく計算をベクトル化したのになぁ(´・ω・`)ショボーン
58デフォルトの名無しさん:04/11/07 18:19:25
新バージョンはいつ頃出るのでしょうか?
59デフォルトの名無しさん:04/11/13 14:17:00
>>49
MATLABでJavaをよみこんでいるのか?
だったらJava単体コードを実行したときには
java.lang.OutOfMemoryErrorはでないのか?

60デフォルトの名無しさん:04/11/14 05:43:59
>>59
>MATLABでJavaをよみこんでいるのか?
GUI周りはJava使ってるよ。
61Mach Go! Go! Go! ◆6opQoo0UZg :04/11/14 09:17:53
>59

>49さんは「ところで」の部分から違う話題に入ったっぽいので、
Javaとメモリ不足とは関係ないみたいです。
R13くらいからのMatlabではJavaのGUIコマンドを実行することもできるようになってるみたいです。
Swingを使ってウィンドウを出したりして遊んだことがあります。
62デフォルトの名無しさん:04/11/15 12:28:40
レンダラーはopenglが一番いい結果になるの?
63matlab 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
広がりながら飛ぶ環状のビーム
66matlab help!!:04/11/22 13:08:29
いまだ苦戦してます。まじプリーズです。
67choix ◆pnCm4bpG3Y :04/11/22 16:48:24
おとなしいスレなんだから、たった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とし、同じ様に解を求めます。
69デフォルトの名無しさん:04/11/24 00:46:22
randn()で発生させた正規乱数は平均0分散1ですが、これを平均1分散4にするには?
平均については1を足せばいいとわかりました。
70choix ◆pnCm4bpG3Y :04/11/24 01:04:23
>>69
かけ算を使うといい。
71デフォルトの名無しさん:04/11/24 05:28:41
正規分布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には何を入れれば良いのでしょう…
74デフォルトの名無しさん:04/11/24 19:11:04
そいつはxcorr より使いやすいのか?

約-21億から約21億までの値を
一個づつNに代入しながら
確かめてみよう。



75デフォルトの名無しさん:04/11/24 20:25:06
>73
時間軸にある相関関数の数
76デフォルトの名無しさん:04/11/24 22:21:14
>>72
Matlab一般って本はあまりないと思うぞ。
坂和先生の本とかは一般論に近いけど、僕はそんなに良いとは思わない。
分野を限定したら色々ある。

大学とかだと先輩が書いたマニュアルが便利なことが多いと思う。

7773:04/11/25 00:06:13
>>75
レスさんくすこ
相関関数の数ってデータ系列から判断できるものなの?
勉強不足か…逝ってきます orz
78デフォルトの名無しさん:04/11/25 02:42:07
>>72
付属のマニュアルとオンラインヘルプとデモ

まじめに書いてあるし、下手な入門書よりわかりやすいと思う
79デフォルトの名無しさん:04/11/26 11:10:42
2つの分布関数から得られた各1000個の数字のヒストグラムを同時に2つ同じヒストグラフにかく。
これはhist(x1),hist(x2)の後や中に、何のコマンドを書けばいいんでしょうか?
80デフォルトの名無しさん:04/11/27 13:23:56
関数y=x^3からyのサンプルデータをxを[-2,2]の範囲で100個取りなさい。

どうやるんでしょうか?
81デフォルトの名無しさん:04/11/27 13:54:11
>>80
質問の意味がいまいちはっきりしないんだけど
x = rand(100,1) * 4 - 2;
y = x .^ 3;
っていうことなのかな。
82デフォルトの名無しさん:04/11/27 14:01:26
>>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]);
83デフォルトの名無しさん:04/11/27 14:05:45
よく、乱数ではサンプルの統計のhistとその分布関数のグラフの図を
同一のグラフに描くをいうのがありますね。
それをx^3でやれというんです。(ちょっと違いますが)
乱数なら簡単なんですが、任意の関数からサンプルを取るとなるとわかんなくて。
84デフォルトの名無しさん:04/11/27 14:07:34
すいません、上は
>>80
の方です。
85デフォルトの名無しさん:04/11/28 00:24:43
>>82
参考になりました。ありがとうございました。
重ねることは出来ないんですね。
86デフォルトの名無しさん:04/11/28 06:28:29
>>85
重ねようと思えば
hist(x1)
hold on
hist(x2)
でできますが、意図した結果にならないかもしれません。
87デフォルトの名無しさん:04/11/28 06:53:00
>>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);
88デフォルトの名無しさん:04/11/28 16:31:38
>>87
乱数を使えばいいんですね〜。
TAに質問したら、y=e(-x)の場合を考えてみろとかかれました。
e(-x)の関数の分布の形に乱数を発生させるのってどうすればいいんですか?
どう乱数を変換すればいいんですかね?
89デフォルトの名無しさん:04/11/29 00:16:00
>>88
xに均一な乱数を生成して、それをexp(-x)に入れれば、
y=exp(-x)からの出力yはその分布に従うと思うのですが。

x = rand(10000, 1) * 3; % [0, 3]の一様乱数生成
y = exp(-x);
hist(y, 100); % 分布を表示

>>86の後半でやっていることも同じですね。
90迷える大学生:04/11/30 14:57:01
matlabのスレが一番近いんで多少スレ違いかもしれませんが質問させてください
大学でscilabを使う問題が出されたのですがまったく無知ゆえさっぱりです
どうか住人の方のお力をお借りしたいです
aシューティングメソッドを使って解け
b有限差分法を使って解け
y''=-2y'-4y
y(0)=2
y(1)=2
91デフォルトの名無しさん:04/11/30 22:55:13
自分で解くべき宿題を持ってこられても困ります。
授業で出された問題だったら「まったくの無知」というのもおかしな話なので、
大学の先生に質問してみましょう。
92デフォルトの名無しさん:04/12/01 22:26:12
>>90
宿題スレとちゃうって。
93デフォルトの名無しさん:04/12/02 09:07:34
一人でもライバルを減らすため、私は答え続けます。
94迷える大学生:04/12/02 12:09:13
>>91-92
カスだな。使えねーやつらめ
95デフォルトの名無しさん:04/12/02 23:23:46
その程度の問題で他人に助けを求めるほうこそカスでしょ。
しかもスレ違いなんだし。
96デフォルトの名無しさん:04/12/04 14:20:17
どなたか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)
97デフォルトの名無しさん:04/12/04 14:21:31
失礼 tb = lsode('heatup',[30],t)でした。
なんでだめなんすかね?
98matlab help!!:04/12/06 09:21:22
1kHzのsquare waveを使って0dBのSNR(信号ーノイズ率)を作るためにノイズを加えた後、
可能な限りのsquare waveを維持しながら、
可能な限りのノイズを吸収するするフィルターを作ろうとしてます。
バターワースもしくはChebyshev1 のフィルターのハイパス、ローパス
バンドパスかnotchを使ってフィルターを作りたいんですが、下のコードの
A,Bに入れるcodeがわかりません。 どなたかわかりますか?
99matlab 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.
----------------------------------------------------------------------------------
100matlab 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);
101choix:04/12/06 10:15:32
1kHzのsquare waveは3kHz、5kHz、7kHz、9kHzというように
奇数倍の周波数に倍音成分が入っているので、
単純なbutterやchebyフィルタじゃ取り出せないと思います。
各倍音成分を取り出せるようなフィルタを考えてみましょう。
102matlab help!!:04/12/06 10:38:21
>101
butterworh/chebyshefフィルタしか使えるのが、ないんですよね。
(まだその2つしか習ってない・・。)
例えば、square wave+noise signalっていうのは、butterやchebyでは
 ちょっとのノイズでも取り出せないんですかね?
103choix:04/12/06 11:58:37
ちょっとインチキくさいんですが、
>>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');
104matlab help!!:04/12/06 12:15:45
早速の返信しかも、コード付でありがとうございます。
ちょっと見たことがないコマンドがいくつか
ありますけど、打ち込んだらしっかりとしたフィルターグラフが出てきました。
すいません、ここでまたまた質問なんですが、butterworthを使った場合
1st order butter worthでないと、いけないんでしょうか?
105matlab 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に
したノイズです。
107choix:04/12/06 19:24:30
別にbutterの次数が1でなくてもいいんですが、
いくつか変えて実行してみて、
それの出力が良さそうだったので選んだまでです。
buttordで次数を決めるのはいいかもしれませんね。
buttordに指定する係数は自分がどういうフィルタを作りたいかに関係するので、
この場合はこうしろ、という公式があるわけではなさそうです。
いくつか試して、最適なものを選ぶと良いでしょう。

使ったことなければMatlab Signal Processing Toolboxの FDATool というのも
グラフィカルにフィルタが作れるので、
フィルタデザインを理解するのに良いかもしれません。
108デフォルトの名無しさん:04/12/06 19:59:02
すいません、ノイズって完璧に取り出す事って可能なのでしょうか?
109choix:04/12/06 21:48:23
画像処理の分野ではけっこうすごい量のノイズでも、
ノイズの種類などが分かっていれば除去できるアルゴリズムを見たことがあります。
もちろん、完全に除去できるわけではありません。
たぶん音声信号でも同じでしょう。
多くの場合は「耳で聞いた限りはノイズがない状態」に持っていくことはできても、
「ノイズが加えられる前の状態」にするのは相当難しい(あるいは不可能)だと思います。
110デフォルトの名無しさん:04/12/06 21:54:23
ありがとうございます。
111デフォルトの名無しさん:04/12/07 13:31:39
計算したデータをテキスト・ファイルに書き込む方法を教えてください!
fpritfで保存すると参考書に書いてあるんですが,
どのフォルダのどこに保存されているかも解りません.
cやFortranのように,データファイルの保存は出来ないのでしょうか!?
112111:04/12/07 13:40:37
↑で質問した者です.
保存されている場所が解りました.workフォルダだった.
すみませんでした.
113デフォルトの名無しさん:04/12/07 16:22:50
普段はウィンドウ上のほうに有るカレントディレクトリだな
fopenのときフルパス出開くこともできるんでないか?
114111:04/12/07 18:42:04
>>113
レス,ありがとうございました.
あと,自分のMatlabでは,
randint()やmodmap()などの関数が認識していません.
どうやったら,使えるようになりますか!?
115111:04/12/07 21:37:16
↑Matlab6.5のバージョンです.
communications Toolboxが入っていないからかな??
誰か教えてください.
116choix ◆pnCm4bpG3Y :04/12/08 08:04:09
>114
一番簡単な方法は「save -ascii」だと思われます。
117choix ◆pnCm4bpG3Y :04/12/08 08:06:32
もしもっと柔軟なファイル書き込みがしたいんだったら以下のようなものが使えるかもしれません。

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,σ)とあるんですがこのσはランダムに
選ぶしかないんですか?
119choix ◆pnCm4bpG3Y :04/12/08 13:15:58
σでガウス分布の裾野の広がりぐあいを指定します。
特にこれといった要求がなければ1でいいんじゃないでしょうか。
もしそれが学校の宿題の問題なんだったら、
先生に聞くのが一番手っ取り早いですよ。
120デフォルトの名無しさん:04/12/08 14:45:44
>>111
raindintもmodmapもCommunications Toolboxだね。
入ってないなら使えない。
どうしても使いたいなら買ってください
121デフォルトの名無しさん:04/12/08 22:06:34
age
122choix ◆pnCm4bpG3Y :04/12/08 23:11:27
>>111
完全互換にするのは面倒ですが、
似たものを自作という手もありますよ。
たとえばrandint()なら
 round(rand*m)
なんていうぐあいに。
123111: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信号どちらを作るものですか?
分かる方がいらしたら、是非教えてください!
お願いします
124デフォルトの名無しさん:04/12/11 00:34:30
ガッコのライセンスって所属してる個人のパソコンにインストールできるんだ。
いいなぁ。ウラヤマスィ。
125デフォルトの名無しさん:04/12/11 00:36:04
もしかして通報の対象か?
126デフォルトの名無しさん:04/12/11 03:20:16
ネットワークライセンス版ならいいんでない?
どうせ研究室外に出たら使えないし、ライセンス数も同時使用数の形でサーバー側で管理してるんだから。
それか、自分のっていっても占有できるだけで、研究室の備品だとか。

マイクロソフトのキャンバスアグリーメントは契約次第で
学生や教職員の個人のPCにインストールしてもOKってのがあるらしい

127デフォルトの名無しさん:04/12/11 03:31:10
今回の例は駄目だよな
128デフォルトの名無しさん:04/12/11 05:44:02
>>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.


133デフォルトの名無しさん:04/12/12 15:24:22
>>129

>> help fopen
>> help fread
134デフォルトの名無しさん:04/12/12 15:24:53
>> help fscanf
135デフォルトの名無しさん:04/12/12 15:43:22
>> help 2ch

136choix ◆pnCm4bpG3Y :04/12/13 09:05:35
グラフ書きたいだけだったらMatlabじゃなくてExcelとかを
使ってもいいんじゃないでしょうか?
137デフォルトの名無しさん:04/12/13 15:55:57
excelはデータの個数制限がきつすぎる
138choix ◆pnCm4bpG3Y :04/12/13 21:11:27
そうでしたか。
了解しました。
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変調なんだし。
教授が怒るのも分かる気がする。
142choix ◆pnCm4bpG3Y :04/12/15 04:07:25
>>139
複素数から実数にするには一般的には
「実数成分だけ取ってくる real(x)」とか
「振幅だけ取ってくる abs(x)」とかを使いますが、
それは「実際に使われている値」に変換する方法ではありません。

そもそもFM変調の仕方がおかしいような気がしますので、
その部分を見直した方が良いでしょう。
143choix ◆pnCm4bpG3Y :04/12/15 04:11:13
ディザにする必要がなければ
bw = data > 128;
などとやってムリヤリ0と1に変換してしまうのが手っ取り早いかと思います。
144choix ◆pnCm4bpG3Y :04/12/15 04:21:36
レス番付けるの忘れました。
>>143>>141 への答えでした。

>>139 なんですが、Signal Processing Toolboxには以下の
FM変調コマンドがあります。
y = modulate(x, Fc, Fs, 'fm');
入力であるxが実数であれば出力yも実数値が出てくるはずです。
139さんの用途にあうかどうか分かりませんが、試してみてください。
145choix ◆pnCm4bpG3Y :04/12/15 04:26:20
>>143
たびたびすみません。
X = dither(I);
というコマンドがImage Processing Toolboxにありました。
もし白黒2値化にディザが必要であればチェックしてみてください。
146ken:04/12/15 17:11:02
MATLABで指紋認識のプログラムを作って卒業研究にしたいとおもいます。
全く二値化のあたりからわからないです。だれかアドバイスください。
147139:04/12/15 19:05:53
>142,143,144
レスありがとうございます。
今から、試してみます。
148デフォルトの名無しさん:04/12/15 19:31:59
>>146
灰色にして、どこかで切ればいいんじゃないの?
149139:04/12/15 19:33:24
>144さんへ
今、教えられたようにy = modulate(x, Fc, Fs, 'fm',kf);
をhelpで調べ、使うと思っているんですが、
xには一般的ににどのような実数を入れれば良いのでしょうか?

試しに、xにsin関数の値を入れて実行しましたが、、、。
質問ばかりでごめんなさい。
でも、本当に感謝しています。
150139:04/12/15 20:54:35
>144さんへ
今、FM信号とAM信号を生成し、シミュレーションしました。
良いと思われる結果が出ました。
これからFM,AM信号の他に、PSK信号やFSK信号も作りたい思います。
また、何かありましたらよろしくお願いします!
151choix ◆pnCm4bpG3Y :04/12/15 22:37:49
>>149-150
解決できたんですね、良かったです。
152choix ◆pnCm4bpG3Y :04/12/15 22:41:16
>>146
画像の二値化の簡単な方法は >>143 >>145 に。
>>148 の「どこかで切る」の切る場所が知りたければ
大津先生の方法とかが参考になるかも。
理解するには統計知識もちょっと必要になったりします。
153デフォルトの名無しさん:04/12/15 23:57:30
>>143 >>144 有難うございます。

2値化は既に出来ているんです。(ディザにする必要はないです)。

0と1の値からなる行列データを白黒(2bit)ビットマップとして保存したいのです。
iwriteでは無理なのでしょうか。HELPみてもそこいらへんについて書いていなかったので・・・。
なにか良い方法があるのでしょうか

154デフォルトの名無しさん:04/12/16 00:26:49
超初心者ですが、
aとnは任意変数で、
aのn 乗根を計算するコマンドがないのですか?
sqrt(n)しかしらないので。
155デフォルトの名無しさん:04/12/16 00:28:48
>>154
a^n
156154:04/12/16 00:47:49
いや、n√a=?みたいのコマンドを聞きたいのです。
157デフォルトの名無しさん:04/12/16 01:03:02
a^(1/n)
158154:04/12/16 01:33:17
うわ、こんな簡単だったなんて…
どうもです、吊ってきます。
159choix ◆pnCm4bpG3Y :04/12/16 02:33:23
>>153
imwriteに'BitDepth'パラメータを指定することで
1ビットの白黒データにできますよ。
もしくはTRUE/FALSEデータをimwriteに
突っ込めば勝手に白黒だと認識してくれます。
ただ、PNG、BMP、TIFFくらいしか1ビットには対応してない気がします。
160choix ◆pnCm4bpG3Y :04/12/16 02:35:01
具体的には
 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倍されていることが分かるはず。
168choix ◆pnCm4bpG3Y :04/12/16 23:49:09
>>163
PNGでは試したんですが、BMPでは試してなかったのがバレバレですね。
すみませんでした。
>>159 で書いた別の方法(TRUE/FALSEを使う)だとうまくいきました。
以下の文ではlogical()を使って0と1だけが含まれているAをT/Fに変換しています。

imwrite(logical(A), 'test.bmp', 'bmp');
169139:04/12/17 00:14:05
y=modulate(x,Fc,Fs,'pm')
を使い、4-PSK信号を作るにはどうした良いですか!?
170choix ◆pnCm4bpG3Y :04/12/17 01:57:28
PSKはCommunication Toolboxに含まれている
dmodceを使うのがラクでしょう。
171choix ◆pnCm4bpG3Y :04/12/17 02:00:49
そういえばdmodというのもありました。
用途に合わせてどうぞ。
172ken:04/12/17 14:30:24
誰か卒論やってー
173デフォルトの名無しさん:04/12/17 14:38:58
>>172
カネはいくら出すんだ?
174139:04/12/17 17:58:05
>171さん
どうもです!
さっそく,自宅に帰り次第試してみます.
175ビギナー:04/12/18 04:15:55
はじめまして。今、学校でマトラボのプログラミングを習っています。二進数同士の足算で+などの記号を使わずにプログラムを作りたいのですが、(コンピュータに規則を学習させてプラスと言う事柄を理解させるには?)どうやってよいか分かりません・・・
例えば十進数を二進数に直すときは
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)
といった感じなんですけれど、こんな感じのをベースにして、足算をさせるにはどうするのでしょうか?
どうしても分からないので、教えていただけたら幸いです。
176デフォルトの名無しさん:04/12/18 09:27:18
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
>>178
出来ました。
有難うございました。
180デフォルトの名無しさん:04/12/25 16:33:41
matlabで2次元のグラフを回転させて3次元のグラフにすることは可能でしょうか?

具体的に言うと3次元でのグラフがz軸で対象なためとりあえず2次元で解いて
それをz軸において回転させて三次元のプロットにできたらいいなと思ってます。

世の中そんなに甘くないのでしょうか?;;
181180:04/12/25 16:40:35
上に補足ですがデータはmatrix(二次元)になってます。
182デフォルトの名無しさん:04/12/25 21:13:30
3次元で最初からプロットしたら?
183デフォルトの名無しさん:04/12/25 23:08:37
>>180
help mesh
184180:04/12/26 09:53:43
>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かなって。。

どうでしょうか?わかりずらい文章ですいません。。
185デフォルトの名無しさん:04/12/26 12:52:15
>>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軸中心に回転させた図形が描けます。
186180:04/12/26 14:14:31
> 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
といった感じにしたいのですが…。

詳しい方、アルゴリズムだけでもいいのでお願いします。
188choix ◆pnCm4bpG3Y :04/12/27 11:36:56
>>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関数を調べてみましょう。
189choix ◆pnCm4bpG3Y :04/12/27 11:38:24
(上のプログラムでcase文のところにある[...) の位置は、その一行下のコメント内に移動して考えてください。)
190デフォルトの名無しさん:04/12/27 12:07:15
丁寧なアドバイスありがとうございます。
もう少し複雑に乱数を生成したいのでrandom関数をいじってみます。
191デフォルトの名無しさん:04/12/28 21:12:21
matlabどころかプログラム自体初心者で申し訳ないのですが…

matlab用の実験toolboxを使って心理実験等を作って、それをWeb上で動かして
より多くの人のデータを取りたいと思っているのですが、可能でしょうか?
基本的な作業の流れ等、教えていただければうれしいです。
192デフォルトの名無しさん:04/12/29 01:52:41
>>191
CGIは書けますか?できればC言語で。

それができるならばUNIX用 or Linux用のMatlabでは可能だと思います。
インターフェイス部分はWebでは利用できないでしょうが、エンジン部分なら
使えそう。

>matlab用の実験toolboxを使って心理実験等を作って
ここを詳しく書かないと有用な情報を得るのは難しいでしょ…
193choix ◆pnCm4bpG3Y :04/12/29 02:39:37
自分は音響心理実験をMatlabのGUIでやってますが、実際にPCの前でヘッドホンをしてもらう、というのが中心で、Web版の経験はないです。
でも、WebであればCGIをPHPやPerlで作ってしまって、集めたデータ処理だけをMatlabで行う方が簡単だと思いますよ。
どうしてもWeb上でGUIを使いたいのであれば、JavaアプレットかFlashを使わないといけませんね。
194デフォルトの名無しさん:04/12/29 02:53:34
>>139
> MATLABでFM信号を作ると、複素数の値で出てきます。
> それを教授に言ったら、「複素数なんて、実際の通信ではありえない」と
> 怒られました。
> 複素数の信号から実際の使われている値に変換することって出来ませんか?
> 論文の提出期限まで時間がないので、かなりビンチですぅ

いいよ、そのまま論文出しちまえ。
そんなことを言う教授は戒めのつもりで言っているつもりなんだろうが
今の時代にその教授の学生に対するやり方、態度は時代遅れで通用しない。
「複素数なんて、実際の通信ではありえない」
なんて言ってきたら
「だから何だってんだ? あんたは何が言いたいんだ?全然意味がわからん。
先生が何を言っているのか先生が何を考えているのか全くわからん。
先生が何のためにそんなことを言っているのかわからん。」
と言ってやれ。教官によってはかなりへこむぞ。

わからねえならとりあえずabs()で絶対値をとっちまえ。
それでも教授が文句をいうなら
「先生の指導能力が悪く、先生の意図していること、
目的がわからず時間がないのでこうさせてもらいました。」
とでも言っておけ。
195デフォルトの名無しさん:04/12/29 02:57:14
>>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というものも使う手もありだ。
197choix ◆pnCm4bpG3Y :04/12/29 03:19:34
>>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よりも簡単に
なるわけだが。
199デフォルトの名無しさん:04/12/29 04:20:23
あんたのほうが低俗な煽り。
質問者のことを理解していないという以前に
質問者の質問がアホ過ぎるほうが低俗。
200choix ◆pnCm4bpG3Y :04/12/29 08:35:57
>>198-199
自分はJava言語が一番のお気に入りですし、Webサービス系の仕事をしていました。
StrutsなどのMVCフレームワークやO/RマッピングのためのフレームワークもSEをやっていたときに使いましたし、様々な技術に関してフィージビリティ・スタディのための調査もしました。
その経験からもServletやJSPが初心者にとって難しいのは事実だと思っています。

少なくとも質問者は、Webプログラムの書き方をマスターしたいのではなく、効率のよい実験をしたいだけのように思えますし、
Javaのサーバーサイド技術に関してはMatlabスレで議論する内容じゃないでしょう? 他のところでやりませんか?
201デフォルトの名無しさん:04/12/29 08:54:13
191です。御返事ありがとうございます。
やりたい実験の内容を書いていないとしょうがなかったですね。

とりあえずMatlabに慣れようと思って、簡単な刺激提示(文字/絵)→キーを押すまでの
反応時間の計測という程度の実験(ストループ実験のような)を作ってみようかなと思った次第です。
そこで、それがなるべくウェブを通じて多くの人にやってもらえる方法はないかなと、
いう質問でした。

皆さんにとっては大分しようもない質問だと思いますが、なにぶん私が全くの門外漢なもので、宜しくお願いします。
202デフォルトの名無しさん:04/12/29 09:52:25
>>200
とにかく藻前はCGIが言語だと勘違いしている時点で(ry
203デフォルトの名無しさん:04/12/29 09:54:16
>>201
ただの体感ソフトを作りたいだけなら
CGIもServletもいらんな。

Webを通して他人に使って貰いさらに
そこからデータを取得したいなら
多少のサーバサイド技術を使うが。
204choix ◆pnCm4bpG3Y :04/12/29 10:10:23
>>201
Matlabを使うのであれば、オフラインで(被験者にPCの前に座ってもらって)行うようなプログラムがいいと思います。
また、オンラインで行いたいのであれば、Java Applet、Java Web Start、Flashなど、リアルタイム性のあるクライアントで動作するものがいいでしょう。計測結果はプログラムがメールで発送するようにすれば、サーバーを用意する必要もありません。

どうしても何らかのかたちでMatlabを使い、かつオンラインで行いたい場合、Matlab Web Server (http://www.mathworks.com/products/webserver/
) を導入し、リアルタイム性のあるクライアント・ソフトと組み合わせるという手もありますが、むりやり難しい解決法を選ぶ必要もないでしょう。
205choix ◆pnCm4bpG3Y :04/12/29 10:12:11
>>202
CGIをプログラミング言語だなんて言った覚えはありません。
そう読み取れる文章を書いたこともないはずです。
ツッコミを入れる時はちゃんと文章を読んでからにしてもらいたいです。
206デフォルトの名無しさん:04/12/29 10:21:05
>>201
ところでプラットフォームは何?
207デフォルトの名無しさん:04/12/29 11:34:08
>>204はJavaWebStartをとってつけたように今覚えたばかり臭いですなw
208デフォルトの名無しさん:04/12/29 11:35:11
>>205
だったら誤解されないよう文章を書くこった。
誰もが自分と同じ考え方を持っていると勘違いしないようになw
209デフォルトの名無しさん:04/12/29 11:36:50
>>204
> 計測結果はプログラムがメールで発送するようにすれば、サーバーを用意する必要もありません。
sendmailはどうやって動かすんだい?
210デフォルトの名無しさん:04/12/29 11:40:32
>>205
もう一度自分の文を読み返してみ。

> でも、WebであればCGIをPHPやPerlで作ってしまって

これはチミがPHPのことをろくにわかってない証拠になるものですな。

これで「自分の思い通り読みとれ」などとよく言えますな。
こういうのを厚顔無恥というのですよ。
211デフォルトの名無しさん:04/12/29 11:54:16
choix ◆pnCm4bpG3Y は本当にSEをやっていたのか?
SEらしくない発言が目立つのだが。
顧客と交渉する能力もたいしたことなさそうだし
212choix ◆pnCm4bpG3Y :04/12/29 12:47:12
もしかしたら自分はあなたよりもサーバーサイド・プログラミングの経験は浅いかもしれません。
仕事で使ったのはJavaのサーバーおよびクライアントが中心で、PHPでは小規模システムしか作ったことはないですし、何十年もSEをやったわけでもありませんから。
でも、この場を荒らすようなことはしたくないというのを理解してもらえませんか? さっきも書きましたが、Javaの話はスレ違いですし。
213デフォルトの名無しさん:04/12/29 12:57:18
pnCm4bpG3Y は学生時代の癖が抜け切れていないと見た。
多分、自分が偉いと勘違いしてるおぼっちゃま君なんだろう。

214デフォルトの名無しさん:04/12/29 13:14:25
>>213
俺はえらぞ
215デフォルトの名無しさん:04/12/29 14:29:57
>>212
じゃあPHPの話もスレ違いだな坊主
216デフォルトの名無しさん:04/12/29 15:26:49
>>204
なるほど、よくわかりました。
そうですね、Matlab練習用にと考えていたので、とりあえずオフラインの実験で
やってみようかと思います。Javaの方も少し考えてみます。
アドバイスありがとうございました。
217デフォルトの名無しさん:04/12/29 15:36:35
>>216
MATLABは金がかかるからなあ。
気をつけることだよ。

いろいろやりたいことがあるなら
自前でサーバ構築くらいできるようになっとけ。

218デフォルトの名無しさん:04/12/29 22:49:04
キモいよ
219デフォルトの名無しさん:05/01/04 13:28:37
MATLABに使われているJavaはヤヴァイJavaだからなー。
Mが作ったあの穴だらけの古いJavaでさ。
220choix ◆pnCm4bpG3Y :05/01/04 19:30:01
でも、Unix、Linux、Mac OS X版だと、
それとは違うJava VM使ってますね。
221助けてください:05/01/05 00:50:53
今MATLABでむだ時間を含むスライディングモード制御のシミュレーション
しているのですが何かお勧めのコマンドとかありますか?教えてください(>_<)
それとMATLABコマンドのODEでのメインファイルとサブファイル(関数ファイル)
のやり取りは具体的にどのように計算されているのかについても教えていただきたいです。
お願いします。

222choix ◆pnCm4bpG3Y :05/01/08 08:04:35
ちょっと質問の意味が分かりにくかったので、
申し訳ないのですが、こっちから質問させてください。
微分方程式の数値解析的な計算方法が知りたいのでしょうか?
それとも対象関数との間の値の受け渡し方法が知りたいのでしょうか?

#スライディングモードに関しては無知なので
#力になれそうにありません。
223助けてください:05/01/09 14:58:27
対象関数との間の値の受け渡し方法について知りたいです。
ode45を使っているのですが、これを使うときにメインファイルとサブ関数ファイル
を使う必要があり、実際にシミュレーションできたのですが、この2つのファイルが
どのようにして受け渡しされているか教えてください。お願いします。
224choix ◆pnCm4bpG3Y :05/01/10 02:01:11
ode45を呼び出すときに第一引数として自分の定義した関数を与えますが、
関数名の先頭に@マークをつけて引き渡されるので、ハンドラとして扱われます。
ode45内ではfevalでその関数が処理されます。
fevalはハンドラとして与えられた関数を実行するための命令です。

一言で言えば、ハンドラを使って関数そのものを受け渡し、fevalを使って呼び出す、ということをしているわけです。
225助けて:05/01/10 02:37:29
ありがとうございます。実際に関数名に@マークをつけていろいろ試したのです
がエラーが出ます。使っているMATLABがVer5.1なので…。
私が勘違いしているのかもしれません。。
ode45というコマンドがこれらの行為を自動で行っているのですか?
226choix ◆pnCm4bpG3Y :05/01/10 09:08:03
ode45の内部でfevalが使われていますので、
自動で行なわれる、という言い方でいいと思います。
ただ、ODEの計算可能性は定義域や初期値などに左右されますし、
ode45(ルンゲ・クッタ法)で解けない微分方程式の種類もあります。
227助けて:05/01/10 10:59:18
そうだったんですか〜!勉強になります。今やっているのはode45で扱える
微分方程式で初期値や許容範囲も大丈夫です。
ode45の内部で関数がfevalによって処理されていることを確認するためには
どうすればいいでしょうか?   ちなみにMATLABはVer6.5にしました。
228choix ◆pnCm4bpG3Y :05/01/10 15:19:14
ぱっと思いつく方法だと、
自分で定義した関数の中に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に読み込まれた回数が半端じゃなく多いのはどうしてなんでしょうか?
いろいろと聞いてしまってすみません。。
230choix ◆pnCm4bpG3Y :05/01/10 22:14:08
微分方程式を一回だけ解くのに何度も関数を使用しないといけないので、
何度も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,…]のような値(状態値)を近似しているのですか?
232デフォルトの名無しさん:05/01/11 11:12:11
すんません。
Simulink を使用しているのですが、途中でフレームサイズを変更することは
出来ますでしょうか?
モデルは以下のようになっています ( 簡略化してます )
Ramdom Signal Generator => Block1 => Scope
ここで、Random Signal はフレームサイズ 2048 で出力するのですが
Block1 はフレームサイズ 1024 しか受付ません。
そこで Block1 の前に何かブロックを挿入して
1. 2048 のフレームを 1024 にする
2. 1024 ずつ Block1 に渡す
3. Block1 の後で 1024 のフレームを結合して 2048 にする
ということをしたいと思っております。

こういう事はできますでしょうか?
よろしくお願いいたします。
233デフォルトの名無しさん:05/01/11 12:08:30
>>232
自己レスです。DSP Blockset の buffer を使うことでフレームサイズの
分割と結合は出来ましたが、今度は必ず最初に値が 0 のフレームが負荷される
ようになってしまいました。
この 0 フレームが付かないようにするにはどうするのでしょうか?
234choix ◆pnCm4bpG3Y :05/01/13 02:34:14
>>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を使えるプラグインないかな。
238デフォルトの名無しさん:05/01/20 11:31:29
いいスレだったんだがサーバーサイド厨の荒氏が来てからさっぱりだな
239助けてください・・・・:05/01/21 12:03:52
はじめまして。
とある大学生です。
自分は今卒論でMATLAB使ってるんですが、
いかんせんプログラムが苦手で困ってます。
どれくらい困ってるかと言うと、
就職決まってるのに卒研のせいでダブる危機があるくらい、
リアルにピンチです。
そこの教授も放置プレーなので、何も教えてくれません。
本当に聞いても自分で調べてくださいっと言われます。
締め切りまで2週間もないのですが、もし力を貸してくれるなら、
七世代まで神として祭り上げます。
と他力本願な俺ですね・・・叩いてもらってもいいです。すいません。
しかし、就職したいのです。だれか力を貸していただけませんか?



2-D画像に離散ウェーブレット変換をかけて例えばsをa1、d1に分解し、
さらにa1をa2,d2に分解、さらにa2をa3,d3・・・
といった具合に分解していって、sとa1〜anをそれぞれ2乗平均して、
その値にLogをかけて縦軸をlog aとこ軸を2の階上として、グラフを作り、
その傾きを求めるというプログラムを作成しろとの事なのですが、
自分には何がなにやらさっぱりわかりません。
できればプログラム作っていただく、もしくは作り方を教えていただけませんでしょうか??おねがいします。


240デフォルトの名無しさん:05/01/21 12:11:31
留年しろ。就職しても給料泥棒なだけだ。
241デフォルトの名無しさん:05/01/21 12:14:45
>>239
おい、何も教えてくれない先生なんておかしいだろ。
授業料返してもらえ。
242デフォルトの名無しさん:05/01/21 14:58:20
教授がMATLABの使い方知ってるとは限らんのでな
MATLAB使ってる院生に聞け。
243デフォルトの名無しさん:05/01/21 15:15:46
「〜というプログラムを作成しろ」なんてとこまで
具体的にお題を与えられないとできないんじゃ、
いいとこ実験レベル。とても卒業研究とは言えまいに。

しかもそのお題の持つ意味すらわからないのでは……。
素直に留年しなさい。
244デフォルトの名無しさん:05/01/21 15:40:25
寺町にないのはたこ焼屋とフランクフルト屋と回転焼き屋だ。
245choix ◆pnCm4bpG3Y :05/01/21 19:28:55
>>239
卒業研究なんだから、それなりに基礎知識をつけているはずです。もしwaveletの「s」「a?」「d?」ですら意味が分からないのであれば、他の方々がおっしゃるように、もう一年しっかり勉強した方がいいでしょう。

後半部分に書かれているプログラムは、画像処理系の研究で10年ほど前から行なわれているのを見たことがありますし、IEEEをあたれば類似の手法はたくさん出てきますので、それらの論文も読んでみましょう。
246デフォルトの名無しさん:05/01/21 20:38:53
HigherOrderStatisticsToolbox使ってる人いませんか?
247デフォルトの名無しさん:05/01/21 23:28:53
>>239
>2-D画像に離散ウェーブレット変換をかけて(以下略)

すげえ。ここまで親切に教えてくれる教授なんて、信じられん。
ちょっと甘やかしすぎではないか?
248デフォルトの名無しさん:05/01/22 03:20:20
ちょっと話がずれているついでに.
最近は卒研内容を「習っていません(だからできなくても問題ない)」なんて後輩もいるんだな.

なんで研究室配属を許可しちゃっただろ(というか演習や実験の単位をあげたんだろう)…
249まと:05/01/23 13:30:38
こんちは
質問です。
ファイル名を絶対パスで取ってきているのですが、
¥が入ってなかなか使いづらいのですが、最後のファイル名だけ
取るのにはどうしたらよいでしょうか???
絶対パスでとってくるGUIを手に入れたので便利だなと
思っていたら落とし穴です。
それを使ってファイル名を作れなくなった次第です。
どなたか。お助けを。
250デフォルトの名無しさん:05/01/23 23:00:28
>>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
253デフォルトの名無しさん:05/01/24 16:48:21
ちょっと待っててね。
254デフォルトの名無しさん:05/01/27 01:05:41
わからん...
255253:05/01/27 03:59:12
ですね、ちょっとわからん。
このスレにゃ答え出せる人居ないよ。自分で考えてください>251

以下何事もなかった如く進行。

担当者と話をすると、MATLABの発音がマツゥラヴに聞こえるマットラボ?マトラボ?
256デフォルトの名無しさん:05/01/27 07:41:27
>>239
Waveletでずいぶん釣れたね!
257choix ◆pnCm4bpG3Y :05/01/27 09:42:42
>>251
GUIDEで生成されたひな形を使ってますか?
もしそうだとしたら、コールバック関数を呼ぶときには
hogehoge('DataLoad_Callback', hObject, eventData, handles, ...);
ってやることになっていると思うんですが、
BatchProcess_Callbackの中ではコールバック関数を直接呼んでますよね。
それが原因になっていたりしませんか?
258251:05/01/28 22:19:53
>> 257

できました!
ご指摘の通り,関数の呼び出しを間違えていたようです.
ありがとうございました.
259デフォルトの名無しさん:05/01/30 10:24:33
R14になってmat ファイルのサイズがR13の時より1/10くらいになってるのだけど
一体どんな実装になったの?
260choix ◆pnCm4bpG3Y :05/01/30 23:31:43
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';

ちゃんとファイル分割しているかしらんが
もししていないならこんなハードコーディングはおすすめできんな。
ソースコードを読む側の立場になったら読むだけでも腹が立つようになってくるぞ。
266デフォルトの名無しさん:05/02/06 01:08:30
ほら、みんなsageようぜ。
上の方にいるからまた変なのが来た。
267デフォルトの名無しさん:05/02/07 11:34:01
すいません、今くそでかいデータファイルを扱っているのですが
処理が長くて困っています。
で、↓のfor文の処理が長いようなのですが
高速化する方法ないでしょうか?
for i = 1:(X)
tmp(i,1) = moto_file(i+(10*A+3),1);
end

読み込んだデータ(mot_file)の10*A+3番目以降のデータをtmpの中に
そのまま移行させたいのです...
よい方法をご存知の方がいらっしゃいましたら
なにとぞご教授お願いします。m(_ _;)m
268デフォルトの名無しさん:05/02/07 11:39:34
あ、すんません
上のmoto_file=mot_fileです
269デフォルトの名無しさん:05/02/07 13:21:54
早くなるかどうかはわからないけど
tmp=moto_file((10*A+3):end);
でどうだ?
tmpは消え去るけどな。
それか、moto_fileをいじってもよければ
moto_file(1:(10*A+2))=[];
で、10*A+2までがデリートされる
270デフォルトの名無しさん:05/02/07 13:43:57
ありがとうございます!
早速試してみます
271269:05/02/07 14:24:46
す!すごいっすわ!
めちゃめちゃ早くなりましたよ!
数十分かかってたのが数秒ですよ!
ありがとうございました!!!!
272choix ◆pnCm4bpG3Y :05/02/08 08:40:00
ループを減らし、ベクトル演算に書き換えれば劇的に高速になります。
英語文章なんですが、Mathworksのサイトに書き換えの指針がまとめてありました。

http://www.mathworks.com/support/tech-notes/1100/1109.html
273デフォルトの名無しさん:05/02/08 21:07:54
matlabでM系列信号発生させてスピーカの周波数特性を測りたいのですがどうすればよろしいのですか?
274デフォルトの名無しさん:05/02/08 21:11:45
>>272
おまいはサイバーネット社のまわし者か?
275デフォルトの名無しさん:05/02/08 21:22:35
MATLABでクラスのカプセル化できんの?
276choix ◆pnCm4bpG3Y :05/02/08 22:02:29
>>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を求められると聞いたんですけど、どういう風に数字を入れていけば
いいのでしょうか?
278269:05/02/09 12:50:33
>272
う、英語文章苦手なんですけど
がんばって読んでみます。
情報ありがとうございますm(_ _)m
279choix ◆pnCm4bpG3Y :05/02/09 14:30:19
>>273
M系列信号を計算することはMatlabでできますが、
それを再生してマイクで拾って録音して、という部分は別のシステムを使った方がラクでしょう。
そのあとで録音データにFFTをかけて周波数特性を確認するのはMatlabでできます。

こんな流れなんですが、周波数特性の分かっているマイクとアンプを使わないと、スピーカーだけの周波数特性は計測できません。
完全なスピーカー特性をはかるには専用のデバイス類が必要になるのでかなり大変です。
280273:05/02/10 05:09:23
>>279
騒音計使うので平気なのです
アンプもフラットなので・・・・
その得られた周波数特性から逆フィルタを求めて
ソースなりに逆フィルかませるということは可能ですか?
281choix ◆pnCm4bpG3Y :05/02/10 05:34:37
スピーカーの線形歪みの部分であれば、
別ソースにフィルタをかけることも可能です。
282デフォルトの名無しさん:05/02/10 10:09:51
xpctargetについてなのですが、
contec製のADボードを使うと、入力が恐らく0.25倍、出力が2倍になってしまいます。
バージョンは2.7ですがMATLAB6.5付属の物でも同じ症状がでます。
インターフェース製のADDAボードだと問題無いのですが、これはバグか何かなのでしょうか。
0.25倍と2倍というのもテスターによって測ったあやふやなものなので詳細がわかりません。
知っている方いらっしゃいますか?
283282:05/02/10 10:11:11
申し訳ありません、詳細を書き忘れました。
使用しているボードはcontecのAD12-16Eです。
284デフォルトの名無しさん:05/02/12 02:37:18
こんなスレがあったとは(゚∀゚)

>>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です。
286273:05/02/22 17:51:22
で、具体的にどうやればいいんですか?
287デフォルトの名無しさん:05/02/24 01:59:01
>>273
具体的にと聞かれても・・・( ´Д`;)
適当にプログラム組んでみて,上手くいかないところを聞くのが筋では?
全部プログラムを作ってくれ,というように聞こえるけど・・・
288choix ◆pnCm4bpG3Y :05/02/24 09:40:18
スレになかなか来られなくて申し訳ない。
やらなきゃいけないことが重なっていっぱいいっぱいで(r
289デフォルトの名無しさん:05/02/26 09:10:36
>>285
オフスクリーンでやれば出来ないことはないが、サイズが指定できないので注意
290デフォルトの名無しさん:05/02/26 18:12:52
matlab7.0.1でGetting startedに記載されている簡単なコマンドを実行しました。
>> a = [ 1 2 ];
>> plot(a)
??? Undefined function or variable 'lineseriesmex'.

Error in ==> lineseries at 19
lineseriesmex;
とつれないお返事。このエラーにどう対処したらいいのでしょうか?
291デフォルトの名無しさん:05/03/07 15:10:54
>>290
遅レスだけど,Ver6.5.1だと普通にプロットできますた。
Ver7だとできないのかな・・・・
292choix ◆pnCm4bpG3Y :05/03/09 02:03:33
>>273
遅レス申し訳ない。ようやくちょっと時間ができました。

十分な長さのノイズ信号を再生した録音データには全周波数帯での応答が含まれています。
その録音データにFFTをかけてマグニチュード応答を割り出し、
それをもとにフィルタを作ります。
フィルタを作るにはYule-Walker法(yulewalk.m)なんかがラクチンです。
293デフォルトの名無しさん:05/03/09 17:18:18
>>292
Numerical Recipe 印C
をみろ
294choix ◆pnCm4bpG3Y :05/03/09 22:16:59
何に関してNRを見ればいいでしょう?
FFTのところか乱数生成のところ?
295デフォルトの名無しさん:05/03/14 15:17:53
matlab 7 で、capture がなくなったみたいなんだけど、代替は何?
296デフォルトの名無しさん:05/03/14 15:41:38
>>295
自己解決
getframe
ね。
297デフォルトの名無しさん:05/03/16 11:16:41
UNIXないのmatlabをWindowsのsshから使っています。XWindowは使えないのですが、この場合、ムービーをfigureWindowなしで作成できるのでしょうか?
298デフォルトの名無しさん:05/03/16 11:42:13
mexをc++でwindows unix両方でコンパイル可能な形書くのって
難しい?
299choix ◆pnCm4bpG3Y :05/03/16 13:28:45
>>297
このスレの過去に似た話が出てきたのでチェックすると良いかもしれません。
>>44-48 あたりです。

>>298
意外に簡単です。
ただ、システム依存する部分はちょっと難しいです。
自分は、多チャンネル音声再生をマルチプラットフォームで
実行できるようなmexファイルを作ろうとして挫折しました。
300デフォルトの名無しさん:05/03/17 12:55:09
mexのdll (window)を
Matlabじゃなくて普通のCのプログラムから呼び出すには
どうしたらよろしいのでしょうか
301choix ◆pnCm4bpG3Y :05/03/17 21:38:46
マニュアルのMEX関連のところに似たようなことが書いてありました。
英語版のホームページで言うと
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/ch_java.html
です。これはMatlabそのものを他のプログラムから利用するというものです。
参考になるかもしれません。
302デフォルトの名無しさん:05/03/19 12:29:36
matlab7は何が新しくなったのですか?
303デフォルトの名無しさん:05/03/19 22:50:51
主に、激しく処理が重くなった。
304デフォルトの名無しさん:2005/03/21(月) 08:27:10
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
>>305
もうちょっと情報ないの?
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)
>>
309choix ◆pnCm4bpG3Y :2005/03/30(水) 19:17:33
みんなが分かるような質問をするとより早く答えが返ってきますよ。

とりあえず「平均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
どう聞いたらいいのかさえ解らない状態と思われ
311デフォルトの名無しさん:皇紀2665/04/01(金) 19:32:51
まだその1だし、蓄積を続けるしか無かろうと思う
312デフォルトの名無しさん:2005/04/12(火) 15:27:19
mex にMFC使ったGUIをくつっけたものって動くよね?
313デフォルトの名無しさん:2005/04/24(日) 16:00:41
今日初めてMatlab知ったよ。
面白そうじゃん。
314デフォルトの名無しさん:2005/04/27(水) 09:00:11
実験でこれ使うよ
315科学者の端くれ:2005/04/27(水) 10:37:58
この板には珍しく、面白そうなスレ発見
316デフォルトの名無しさん:2005/04/29(金) 18:00:17
matlab の関数って、値渡しですよね?
大きな行列を使った関数をたくさん呼んでるんですが、
値渡しのコストが大きそうな感じ。
値渡しを避けるには変数をglobalにするしか方法はないんでしょうか?
317デフォルトの名無しさん:2005/05/01(日) 14:35:43
値渡しっていうか、ポインタ参照した後に
演算がコピーしてるじゃないの?
コンパイラの最適化の話じゃない?
318デフォルトの名無しさん:2005/05/08(日) 19:18:37
matlabって学校が購入する際いくらくらいなんですか?10ライセンス分で。
購入を検討しているのですが。
319デフォルトの名無しさん:2005/05/08(日) 21:08:48
>>318
サイバネットに聞け。マジで。
toolboxの組み合わせが膨大で、ここで答えられる範疇を超えてる。
320デフォルトの名無しさん:2005/05/08(日) 23:37:13
>>318
本国だと学生向けアカデミックパッケージがだいたい100ドルくらいだけど、
グループライセンスはウェブには価格が出てないね。たいていは大学全体での
サイトライセンスなんじゃないかな。
321デフォルトの名無しさん:2005/05/09(月) 00:26:26
そうでもない。
MATLABのグループライセンスの場合、
LAN内にライセンスサーバを一台立てて、同時使用数とかのチェックが入るから
大学全体だと数が多すぎて微妙だったりするので
研究室単位でライセンスを買ってるところも結構ある。
322デフォルトの名無しさん:2005/05/09(月) 02:07:04
>>321-322
もれの研究室がライセンス持っているみたいだけど、他の研究室は持ってないみたい。
ちなみに、研究目的で自分のノートPCにインストールして、自宅でするのは合法?
ってライセンスの組み合わせによって変わるか…
323デフォルトの名無しさん:2005/05/09(月) 06:13:54
サイトライセンスの場合、そもそも自宅だと認証サーバにつなげないから
起動できないんじゃないか。
#漏れのノートにも入ってるが研究室でしか使えん。

スタンドアロン(認証サーバにつながない)ライセンスのがあるなら
インストールしてあるPCの数がそのライセンスの数までなら合法
それより多くのPCに入れるとたぶんアウトかな?
一度ライセンスをよく読んでみるのお勧め。
324デフォルトの名無しさん:2005/05/09(月) 08:14:45
>>317
サンクス
325デフォルトの名無しさん:2005/05/09(月) 22:56:41
>>323
どうもサンクス!
教授がどうもそういうのに疎くて…
一度よく読んでみるよ。
326デフォルトの名無しさん:2005/05/10(火) 07:48:52
matlabのまとめページとかはないのですか?
327デフォルトの名無しさん:2005/05/10(火) 12:16:09
328デフォルトの名無しさん:2005/05/10(火) 14:03:26
ぐぐってヘルプ見ようとするとことごとく 
The MathWorks product documentation you have requested is no longer available.  
なのだが、ヘルプはどこへ行ったのでしょうか? 
329デフォルトの名無しさん:2005/05/10(火) 17:59:50
すいません、プログラムと関係ないのですが質問させてください。
最近、研究室で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
http://O040052.ppp.dion.ne.jp/
うぇwwwっおkwwwwwwうぇwwwっうぇっwwwwwwwwwwww
っうぇおkwwwwwwwwwwwwwww


うぇwww
っうぇwwwおkwww
332デフォルトの名無しさん:2005/05/12(木) 17:51:39
titleを常に図の下側に表示させるように変更したいんですが・・・。
できます?
333デフォルトの名無しさん:2005/05/13(金) 16:34:04
全体の領域をzeros(256,256)で与えた後、半径256点の円の内側の領域の強度を1
外側を0とするにはどのようなプログラムでできるのでしょうか?
334choix ◆pnCm4bpG3Y :2005/05/13(金) 23:49:54
>>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);
335choix ◆pnCm4bpG3Y :2005/05/13(金) 23:58:21
>>332
title命令はtext命令に対するラッパーのような動きをするので、
textのプロパティをそのまま使用できます。

h = title('hogehoge');
set(h, 'Position', [x y]);

で位置を変更できます。
336デフォルトの名無しさん:2005/05/15(日) 14:44:19
figureウィンドウをある程度大きくすると、movie2aviコマンドでエラーが出るのですがこれは仕様ですか?
337choix ◆pnCm4bpG3Y :2005/05/15(日) 17:29:46
どんなエラーメッセージが出ているのですか?
338デフォルトの名無しさん:2005/05/16(月) 01:12:48
Matlab で
x= dir()
みたいに、dir の返り値をとって変数に代入できますが、
octave で同じことをする方法を教えて下さい。
(そのままだと右辺が未定義として怒られる)
339デフォルトの名無しさん:2005/05/16(月) 16:25:50
はじめまして。
LMIを扱った問題について質問させてください。
あるスカラ変数τ*(タウスター)があるとします。
この時 (0<=τ<=τ*) の範囲で、システムを安定させる行列変数Pを求めたいのです。
この場合どのようにLMI式を立てればよいのでしょうか。

whileループでひたすらτ*の値を増加させていくしかないのでしょうか。
できればきっちりと限界値がわかるようにMATLABで計算してもらいたいのです。
しかしlmitermでは変数が一つしか扱えません。
何かうまい使い方があるのでしょうか
340迷える子羊:2005/05/19(木) 21:32:55
こんにちは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について詳しい香具師がいると
思うのだが。
音響工学、画像工学の研究室なら大抵つかっているし
342デフォルトの名無しさん:2005/05/23(月) 14:21:14
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]
のような行列に抽出したいと思っているのですが、うまく行きません。

どなたかご存知の方がいらしたら方法を教えてもらえないでしょうか?
343Zeno ◆5nZQbNmQPs :2005/05/23(月) 14:24:27

          吾は 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 でクラスを書いています。
クラスに静的メンバ関数を実装することはできるでしょうか?

クラスで実装しているメンバ関数の間で、
簡単なユーティリティ関数を共有したいのですが、
どのようにしたらよいでしょうか?

よろしくお願い致します。
345デフォルトの名無しさん:2005/05/23(月) 21:08:44
>>343
「MATLAB によるxxxx」という本がたくさん出てるよ。
マルチメディア処理の本とかもあったな。
346デフォルトの名無しさん:2005/05/24(火) 07:11:53
レンダラーをOpenGLにするとメモリに振った文字がつぶれてしまうのですが、これは仕様でしょうか?
OpenGLを使わないときれいに出ます
347デフォルトの名無しさん:2005/05/24(火) 14:49:19
OpenGLを使うと

警告: OpenGLのバージョンが認識できません。デフォルト1.0を利用します.

という警告がグラフィックを操作するたびに出ます。この警告を出ないようにする方法はないでしょうか?
348Zeno ◆5nZQbNmQPs :2005/05/24(火) 16:06:15
Reply-to:>>345
        本を買う金がない。 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
349デフォルトの名無しさん:2005/05/24(火) 16:35:29
MATLABはver.7になってから
オブジェクト指向のサポート度数はあがったの?
PHPがver4からver5にアップグレードしたときに
オブジェクト指向のサポートが非常に強力になったように。
350choix ◆pnCm4bpG3Y :2005/05/24(火) 22:01:22
>>348
まずは本家のドキュメントが良いかと思います。
http://www.cybernet.co.jp/matlab/support/helpdesk/r14/index.shtml

Signal Processing ToolboxのUser's Guideで
信号処理の基本あたりを学んで、
Image Processing Toolboxで画像処理を勉強する、
なんていうのはどうでしょう?
351Zeno ◆5nZQbNmQPs :2005/05/25(水) 16:40:36
Reply-to:>>350
       やはり User's Guide が一番能率的であるかもしれないな。
   Matlab 自体は好きなのだが、現在魅惑があらゆる角度から迫ってくる故、
   なかなか本気になれないのが現実だ。 好きなものがもっと好きなものに押し
           潰されるとは皮肉であるだと思わないか?
          しかしながら、今度読む予定に入れておこう。
_________________
セオドア・カジンスキー 「産業社会とその未来」 (aka. マニフェスト) の抜粋
http://www.cnn.com/US/9509/unabomber/09-19/am/excerpt.html
352デフォルトの名無しさん:2005/05/25(水) 16:58:06
>>351
素直に「ありがとう」と言いなさい。
353デフォルトの名無しさん:2005/05/25(水) 17:09:08
誰かRASP知っている人いませんか??
354デフォルトの名無しさん:2005/05/26(木) 10:42:06
OpenGLのバージョンが取得できないと警告が出ます。
このメッセージを消すにはどうしたらよいでしょうか?
355デフォルトの名無しさん:2005/05/26(木) 15:49:16
警告の出ないハードで動かせばいいじゃないか
356デフォルトの名無しさん:2005/05/26(木) 16:32:12
Radeon9700ですが、警告が出ます
357デフォルトの名無しさん:2005/05/26(木) 16:36:14
警告の出ないハードで動かせばいいじゃないか
358デフォルトの名無しさん:2005/05/26(木) 16:43:09
どれならでない?
359デフォルトの名無しさん:2005/05/26(木) 16:48:01
発売元に問い合わせればいいじゃないか



どうしようもないアフォだな
360デフォルトの名無しさん:2005/05/26(木) 19:18:55
普通、仕入れた場合、クライアントの一番近い各支社の人間が担当として付くはずだがね
361デフォルトの名無しさん:2005/05/27(金) 08:47:41
MATLABはVer7になってもオブジェクト指向言語としては
貧弱なのか・・・・・
362Zeno ◆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
音響の研究をしている学生です。
ttp://www.petitcolas.net/fabien/software/mpeg/
ここにあるDownloadから落としたプログラムで音声を合成したいのですがなかなかうまくいきません。だれか分かる方がいたら教えてくれませんか?
ちなみにFFTがオーバーラップしていて合成はadd法を使えばいいということまで分かっているつもりなのですが・・・
よろしくお願いいたします。
364デフォルトの名無しさん:2005/06/03(金) 00:23:23
Cで書いたコードを組み込めるようなのですがやり方がよくわかりません。
どこかに解説したページはありませんか?
365デフォルトの名無しさん:2005/06/03(金) 14:39:45
matlabプログラムに実行引数を与える方法を教えてください
366デフォルトの名無しさん:2005/06/04(土) 14:34:40
画像に簡単にフィルタなどを適用する方法はないのでしょうか?
フィルタのコードを書くしかないのでしょうか?
367デフォルトの名無しさん:2005/06/05(日) 05:38:47
>>366
conv2とかじゃだめなん?
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のところにも余分な線が出来てしまっていやなのですが
369デフォルトの名無しさん:2005/06/05(日) 23:55:17
>>364
マニュアル読めば分かるよ。
loadlibrary だよ。
loadlibrary で、外部ライブラリと、その関数を宣言したヘッダーを読み込んで、
callib するだけだよ。
370デフォルトの名無しさん:2005/06/05(日) 23:55:59
>>365
どういうこと?
func(arg1, arg2)
でいいんだろ?
371デフォルトの名無しさん:2005/06/07(火) 15:09:33
jetのカラースケールを自作のプログラムでも実現したいのですが、どのようにRGBを分布させればよいのでしょうか?
372デフォルトの名無しさん:2005/06/14(火) 18:33:04
256点に対称な方形波をフーリエ変換した時、虚数が10^ー14程度の数値で出てしまうのですが
これは誤差としてみなしてよいのでしょうか?

373デフォルトの名無しさん:2005/06/15(水) 00:30:56
>>372
その包茎波の大きさは何よ。

そもそも、MATLABとはいえ所詮有限桁数での演算シミュレーションなんだから
こんな得体のしれないところで訊くまでもなく、ちょっと考えりゃ答えは分かるだろ。
374デフォルトの名無しさん:2005/06/17(金) 23:27:20
MEXファイルの作り方/書き方に関する良い解説の紹介を願います.

良いというか,以下の条件を満たすような説明.
・豊富なサンプルの提示
・落し穴や注意点の説明
・Win/LinuxやC/C++/Fortranといった違いに触れてある解説
・できれば日本語

サイバネットのサーバって遅いし,力が入っていない気がするし…
お薦めページを御存じの方,よろしくお願いします.
375デフォルトの名無しさん:2005/06/21(火) 13:26:37
ヘルスにあってもおかしくない名前だよなぁ>MATLAB
376デフォルトの名無しさん:2005/06/23(木) 18:12:26
連続系から離散的にデータを取り出したい(A/D変換)のですが、
simulinkでのやり方がわかりません。
わかる方がいらっしゃたら、ご教授お願いします。
377デフォルトの名無しさん:2005/06/23(木) 23:17:22
>>376
Matlabが手元にないんで不明瞭な回答になるけど、
「0次ホールド」「zero order hold」「hold」「A/D」などの
文字がSimulinkの要素選択画面にない?

あったならば、それが正解。
378デフォルトの名無しさん:2005/06/24(金) 02:52:55
>>377さん
こちらの手元にもないんですが、
確か「zero order hold」っていうのはありました。
これは、A/D変換ではなく、D/A変換だと聞いたのですが
間違っていますか?
379デフォルトの名無しさん:2005/06/24(金) 12:02:34
>>378
漏れSimulinkerだから適当にモデル説明してくれれば分かると思う。

連続系から離散的にっていうのは,例えばサイン波形をサンプリングとかそういう感じ?
380デフォルトの名無しさん:2005/06/24(金) 14:44:21
>>379
おぉ、ありがたいです。
僕もよくわからないのですが、Monodモデルです。

連続系から離散的にっていうのはおっしゃる通りです。
381デフォルトの名無しさん:2005/06/24(金) 16:34:28
よく分からないのか( ´Д`;)

>>377氏が言うように,zero order holdか,別にGainでもいいんだけど,
ブロックを入れてサンプル時間を設定すればいい。

サンプル時間についてはそっちの設定が分からないからなんともいえないけど。
試しに1くらいでやってみて,それで駄目なら変えてみるとかね。
382376: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変換の間に処理を施す事ができないのでは?
と思ったのですが、どうなんでしょう?(´・ω・`)ヨクワカラン
383デフォルトの名無しさん:2005/06/25(土) 15:33:00
>>382
381だが,A/D,D/A変換は正直よく分からない部分もあって・・・('A`)
A/D変換はできるけど,D/A変換は完全に出来るかどうかは疑問。
っていうか,Simulink上では一見アナログに見える波形も,実はデジタル波形な希ガス。
サンプル時間を非常に短くとっているので,アナログっぽく見えるだけのような・・・

まぁ,一応モデルを作ってみてそれっぽい動作は確認できた。
適当なメアドかメッセの番号,あとはうpろだ探してくれれば送るよ。
384デフォルトの名無しさん:2005/06/25(土) 21:13:35
>>383さん
そうなんです。D/A変換がよく分からないんですよね(^ω^;)
モデルわざわざ作っていただきありがとうごじまます。
メール欄のとこのアドにお願いします。
手元にMATLABがないので確認は月曜日になりますが…
385デフォルトの名無しさん:2005/06/25(土) 21:19:04
すいません。肝心なところ間違えましたorz

×ありがとうごじまます
      ↓
○ありがとうございます

でした。失礼。
386デフォルトの名無しさん:2005/06/26(日) 02:21:03
>>384-385
OK,明日か明後日には送っておく。
ところでふと疑問に思ったんだけど,A/D・D/A変換する必要があるの?
どんな処理か分からないけどさ。
387デフォルトの名無しさん:2005/06/27(月) 22:07:04
MATLABのソフトって回線繋いでる時って監視されてるの?
388デフォルトの名無しさん:2005/06/27(月) 23:59:32
>>387
ちと意味がわからないんだが・・・
ネットワークライセンスのことかな?
389デフォルトの名無しさん:2005/06/28(火) 00:09:14
>>388
都市伝説かなんかでPhotoshopには個人データを送信しているとかいないとか
噂されていますよね?そういう小細工みたいなことしこんであるのかなと思いまして。
まあ、ライセンス違反をした時ばれるかってことです。
390デフォルトの名無しさん:2005/06/28(火) 00:16:10
>>389
ライセンス違反してるの?( ´Д`;)
391デフォルトの名無しさん:2005/06/28(火) 00:20:47
>>390
いえ、こういうツールって高いじゃないですか?
だから、高価なツールにはみんな変な細工されてるのかなと思いまして(゙ `-´)/
392デフォルトの名無しさん:2005/06/28(火) 00:23:02
開発者じゃないからワカンネ
大丈夫ジャネーノ?
393デフォルトの名無しさん:2005/06/28(火) 00:28:47
>>392
了解っす(゙ `-´)/
では開発者が現れるまで待ち続けるぞー!
394デフォルトの名無しさん:2005/06/28(火) 12:08:35
etherealとかでパケットキャプチャしたら分からないかな?
395デフォルトの名無しさん:2005/06/28(火) 17:57:58
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_?
396デフォルトの名無しさん:2005/06/29(水) 00:20:35
NaNってのは例えばlog(0)とか,A÷0なんかみたいに計算できない時に出る値。
Infは無限大なんだけど,値が発散してるってことかな?
397デフォルトの名無しさん:2005/06/29(水) 00:23:38
MATLABでプログラム組むことになったんだが他の教授にバカにされたりしないかなぁ
時間が余ってからCで作り直すか
398デフォルトの名無しさん:2005/06/29(水) 00:35:10
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);
400デフォルトの名無しさん:2005/06/29(水) 02:19:35
>>396
そうみたいです。thx。
それで固定ステップサイズを減少させるというのは
どういった意味があるんでしょうか?

>>397
なんで教授にバカにされるの?
401デフォルトの名無しさん:2005/06/29(水) 02:28:33
どんなモデルかわからないから何とも言えないけど,
発散してるってことはどこか係数か何かを小さくしてみるとか。
それくらいしかアドバイスデキネ
402デフォルトの名無しさん:2005/06/29(水) 04:01:25
>>401
いろいろ試してみます。ドモー(*^▽^*)
403デフォルトの名無しさん:2005/06/29(水) 12:31:33
>>397
まず、ほかの人の論文をたくさん読んでみ。
結構MATLABで処理した結果を論文に載せてる人は多いし
そこまで気にすることじゃないだろう
404デフォルトの名無しさん:2005/06/29(水) 15:18:03
レンダラーをOpenGLにすると文字がつぶれてしまうのですが何か良い解決方法はないでしょうか?
405デフォルトの名無しさん:2005/06/29(水) 16:26:48
>>404
レンダラーをOpenGL以外にすれば良いです。
406デフォルトの名無しさん:2005/06/30(木) 14:24:38
>>405
ワロス
407デフォルトの名無しさん:2005/07/04(月) 11:44:58
ムービーを作成する際に、ムービーの画像の大きさを指定したいのですが、どのようにすればよいのでしょうか?
408デフォルトの名無しさん:2005/07/14(木) 03:58:59
>387- あたり。

うちはファイアウォール内でライセンスサーバ動かしていますけど、
何の問題もなく使えていますよ。

もちろんヤバいことはしていない。
409デフォルトの名無しさん:2005/07/14(木) 04:01:49
>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)でできたんですけど、粘性まで
入ってくるとどうもエラーが...
詳しい方お願いします。
412デフォルトの名無しさん:2005/07/21(木) 09:41:28
緯度、経度を軸に地図を描くにはどうしたらいいのですか?
また緯度経度データを読み込んで地図上にプロットしたいのですが。
よろしくお願いいたします。
413デフォルトの名無しさん:2005/07/27(水) 04:18:09
Mapping Toolbox使うべし。
414デフォルトの名無しさん:2005/07/28(木) 15:52:22
dual モニターの環境でplot使うとおかしくならない?
415デフォルトの名無しさん:2005/08/01(月) 11:49:04
fsolveに与える関数について質問です。
関数f(x,y)をfsolve(@f,x0)のようなことをしたいんですが、
yはgivenで、xが変数なんです。
yはどのように指定したらいいでしょうか。
416415:2005/08/02(火) 01:45:48
解決しました。
x = fsolve(fun,x0,options,P1,P2,...)
ですね。
417デフォルトの名無しさん:2005/08/02(火) 08:40:50
>>415-416
自分も分からなくて困っていたことがありました。
ありがとうございました。
418デフォルトの名無しさん:2005/08/09(火) 09:37:56
マトラブで周波数応答を求めたのですがそのある部分(例えば100Hz〜16kHz)
の特性F(w)に対してその逆関数1/F(w)を求めることとかって可能でしょうか?
419デフォルトの名無しさん:2005/08/13(土) 11:59:21
>>418
逆関数だったら複素数(ゲインと位相)の関数になるでしょ。
周波数応答って全単射じゃないから逆関数は一般には存在しない。
420418:2005/08/13(土) 16:55:36
任意周波数振幅特性のフィルターを設計したいんです。
そうするとスピーカの振幅特性の逆関数が判らないとできなくないですか?
421デフォルトの名無しさん:2005/08/13(土) 18:08:05
>418
板違いじゃない?(Matlabじゃなくって数学の質問のような気がする)

例えば、
     G(s)=e^{sL}, sは虚軸の上半分, Lは十分大きな正の数
の逆関数なんて存在しないでしょ。周波数を100Hz〜16Hzに限定しても。
422デフォルトの名無しさん:2005/08/14(日) 00:51:03
ヒント:基本ができてないけど、道具はある
423デフォルトの名無しさん :2005/08/14(日) 07:33:42
結局、あんたも判らないわけね。。。
424デフォルトの名無しさん:2005/08/14(日) 10:49:21
MATLAB頼りの奴って、MATLABが使えない環境では、
どうするつもりなんだろうか。
425デフォルトの名無しさん:2005/08/14(日) 14:55:14
Matlabが使えない環境ではJavaで書きます。
それがダメならPython。最終的にはC言語。
426デフォルトの名無しさん:2005/08/15(月) 13:39:32
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分割して格納したいのですが・・
よろしくお願いします。
432デフォルトの名無しさん:2005/08/25(木) 02:04:57
linspace(100, 10000, 500)
100〜10000を500分割。

ちなみにlogでいきたければlogspaceという関数もあり。
433431: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


434デフォルトの名無しさん:2005/08/26(金) 00:41:51
内部的には同じことやってると思うので、
今まで通りやっても大丈夫だよ。
435デフォルトの名無しさん:2005/08/30(火) 10:18:07
データを読み込む時にload関数を使いますが,
データの最初の2行の読み込みを飛ばしたい時はどういう風にすればよいですか?
436デフォルトの名無しさん:2005/08/30(火) 12:44:08
load命令はもともとMatlabのsave命令を使って保存したものを読み込むための命令。
「最初の二行を飛ばしたい」と言ってるので、おそらく自分で用意したテキストファイルやCSVファイルを読み込もうとしているんじゃないかな?
そういうときはdlmreadやcsvreadという専用コマンドを使った方がいいよ。

A = dlmread('hoge.txt', ':', 2);

とやれば、hoge.txtの中にあるコロン区切りのデータを最初の二行を飛ばして読み込んでくれる。
437デフォルトの名無しさん:2005/09/07(水) 16:38:49
斜面スライスの方法がわかりません
f(x,y)=ax+byのような平面スライスの方法を教えていただけないでしょうか
438437:2005/09/08(木) 11:11:57
自己解決しました、申し訳ありませんでした
439名無しさん@そうだ選挙に行こう:2005/09/11(日) 12:00:52
Matlabってサイバネット(やMathworks)のページのマニュアルが結構充実していると思う。
でも、サイバネットのサイトって鯖が遅過ぎなんで使えん。

そう思っているのってボクだけですか?

440名無しさん@そうだ選挙に行こう:2005/09/11(日) 17:44:21
サイバネットはサポートが神だよ。
質問してもすぐ返事が返ってくる。

漏れの使ってるハードウェアのサポートが他の会社に移った途端,
返事が返ってこなくなって実感した('A`)


>>440
関係者乙
441デフォルトの名無しさん:2005/09/12(月) 09:09:21
>>440
( ´д)ヒソ(´д`)ヒソ(д` )
442デフォルトの名無しさん:2005/09/12(月) 09:53:05
新しい自己参照処理ですか >>440
443デフォルトの名無しさん:2005/09/12(月) 21:59:39
ニューラルネットToolboxを使ってsomを作成しているんですが,somについてわかる方設定等を教えてください.
444デフォルトの名無しさん:2005/09/17(土) 01:55:40
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はどうやって書かれているか見る
方法はありますか?
447デフォルトの名無しさん:2005/09/24(土) 06:33:56
type polyval
type deconv
448デフォルトの名無しさん:2005/09/24(土) 06:36:26
>445
DC成分って、つまりはx時系列データの平均値みたいなもんでしょ。
x = x - mean(x);
ってやってからspecgramに渡したらどんな感じ?
449445: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 は不定なのでゼロ除算エラーになります)
453デフォルトの名無しさん:2005/10/04(火) 16:56:47
算数レベルの話じゃないのか・・・
これがゆとり教育の(ry
454デフォルトの名無しさん:2005/10/04(火) 20:54:24
>>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ってコピーガードついてたっけ?
バックアップとりたいのだが。
458デフォルトの名無しさん:2005/10/13(木) 12:52:14
>>456
ここは工学とか物理とか、そういう専門のことを聞く場所じゃなくて、
Matlabプログラミングの質問をするところです。
もっと具体的に書いてもらわないと何が何だかわかりません。

>>457
バージョンやプラットフォームは?
コピーガードがついてるのはStudent Versionだけだったような気がする。
459デフォルトの名無しさん:2005/10/13(木) 19:14:42
誰かMATLABでWORKINGMODELを動かすやりかたしってる?
460デフォルトの名無しさん:2005/10/13(木) 21:04:51
student version だと機能制限で 不便ですか?
4年しかつかえないのでしょうか?
461デフォルトの名無しさん:2005/10/13(木) 21:53:25
いまのStudent Versionには機能制限はないよ。
各ToolBoxもちゃんと使えるし。
起動時にプログラムCD-ROMを入れておかないといけない、
という起動制限があるだけ。
これも回避する方法はあるみたいだしね。
462デフォルトの名無しさん:2005/10/14(金) 01:32:35
>461
どうやんの?
463456:2005/10/14(金) 02:29:47
失礼しました。改めていいでしょうか。

sys=ss(A,B,C,D)

で表されているシステムの中の、
A行列にかかるx行列を抽出して変数にしたり(「set('statename')」ではなくて)、
要素のみを抜き出すことって出来るのでしょうか。
464461:2005/10/14(金) 21:25:23
完全な回避方法じゃないんだけどね。
自分はMac OS X版のR13 Student Version。
Roxio Toastでディスクイメージを作ってしまえばいい。
OS付属のDisk Utilityだとイメージの作成に失敗するけど、Toastなら大丈夫。
ただ、中途半端なイメージを強制作成することになるので、
一部ファイルが含まれなくなってしまう(PDFドキュメントとか)。
できあがるイメージはDisk Utilityで作成されるものと互換性があるから
Disk Utilityで圧縮イメージに変換してしまえばサイズも小さくなるよ。
465デフォルトの名無しさん:2005/10/14(金) 21:29:04
>>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)を抽出できる。
467463:2005/10/15(土) 04:45:01
>>465
まさしくコントロールツールボックスというモノの中のやつです…。
>>466
ということとは初期値とCをいじって、システムの出力を扱えばいいんですね…。
ありがとうございました、やってみます!
468デフォルトの名無しさん:2005/10/15(土) 10:30:02
なんで自分の環境書かないで質問するんだろう・・・
469デフォルトの名無しさん:2005/10/16(日) 14:52:31
>461
thx!
470デフォルトの名無しさん:2005/10/19(水) 00:15:21
Matlabのsimulinkで、ある動作を1000回繰り返したいのですが
どうやればよいのでしょうか?
471デフォルトの名無しさん:2005/10/19(水) 07:33:58
AUX等から連続的に録音して、リアルタイムに表示させたいのですが
どうすればいいでしょう。
audiorecorderオブジェクトは、1秒録音するのに2秒近くかかるので
困っています。
オブジェクトを複数立ち上げて交代で録音しようとしたら、フリーズ
しました。
プラットフォームはWindowsXPです。
472デフォルトの名無しさん:2005/10/20(木) 00:58:16
>>470
その動作がわからないとなんともいけないわけで。
473デフォルトの名無しさん:2005/10/21(金) 08:32:14
学生用のライセンスは機能制限なし(つまり何でも使える)なのに安価→
 慣れてしまってMatlabなしには生きられなくなる→
  そういう学生が理系就職する→
   高額な一般ライセンスを購入→
    Mathworksウマー→
     プログラミングができない学生を再教育しなければならない企業はマズー

という構図なんだが、判っててもはまってしまう。
Matlabは便利だからとりあえずの結果を出すには最適だものな。

スレ違いスマソ。
    
474デフォルトの名無しさん:2005/10/25(火) 16:11:11
DFTのアルゴリズムを教えていただきたいのですが。
475デフォルトの名無しさん:2005/10/25(火) 18:50:30
ttp://www.econ.keio.ac.jp/staff/nakatuma/courses/2005/bayes/tb3ms.txt
ユザー名bayes05
パスワードthomas

↑この利子率(TB3M)の時系列データについて
@データをtextreadで読み込む
A横軸に時間、縦軸;利子率 をとったグラフを書く
Bcorrで自己相関係数を求める
この3つをやるプログラムがわかりません。初歩的な質問ですみませんが、教えてください。
476デフォルトの名無しさん:2005/10/25(火) 19:14:03
中妻さんに聞くといいと思うよ
477デフォルトの名無しさん:2005/10/25(火) 23:45:24
ある波にFFTをかけて、特定の周波数帯域について積分しようとしています。
しかし、単純にfft(data)とすると、虚数のデータが吐き出されるようで、うまくいきません。
どうすればパワースペクトルを求められるでしょうか。
初心者にアドバイスお願いします。
478デフォルトの名無しさん:2005/10/26(水) 02:18:09
>>474
アルゴリズムの中身を知りたいのでしたら,信号処理の本を見たほうがいいかと思います。
matlabでの離散フーリエ変換は組み込み関数ifftでできます

>>477
>>特定の周波数帯域について積分しようとしています。
この意味がよくわかりませんが・・・

混同されているようですが,まず,時間tの関数をフーリエ変換すると,周波数fの関数になります。
これは振幅スペクトルです。パワースペクトルとは,振幅スペクトルの2乗になります。


データを data 、データ数を n とすると,

Y = fft(y,n);    %振幅スペクトル

Pyy = Y.* conj(Y) / n;    %パワースペクトル


>>474,477
参考これのデータ解析とフーリエ変換より
http://www.cybernet.co.jp/matlab/support/helpdesk/r13/toolbox/matlab/ref/func_by__01.shtml
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個あります。
これをグラフに反映させたいのです。

よろしくお願いします
480デフォルトの名無しさん:2005/10/26(水) 14:29:04
>>478
ありがとうございます。
振幅スペクトルとパワースペクトル、そのあたりのもやが晴れました。
ただ、
>>Pyy = Y.* conj(Y) / n;    %パワースペクトル
ここまではたどり着いていたんですが、これをプロットすると、
両端にピークを持つグラフが出てきて、
横軸が周波数ではなくデータ数のようなんです。
単純にプロットの仕方がおかしいだけなのでしょうか?
それともデータの時間に関する情報が欠けてるのかなと思ったり。
データは、サーミスタで測定した温度変化です。
アドバイスお願いします。
481477=480:2005/10/26(水) 15:40:58
>>478
冷静さを欠いていました。
なんとかなりそうです。
アドバイスが助けになりました。
482デフォルトの名無しさん:2005/10/26(水) 22:48:49
>>479
ttp://www.cybernet.co.jp/matlab/support/helpdesk/r13/toolbox/matlab/ref/func_by__01.shtml

で,グラフィックス−特殊なプロットでグラフ表示の関数を見てみましたが
ヒートマップというのは見受けられませんでした('A`)
483477=480:2005/10/27(木) 14:18:11
fftでパワースペクトルを求めたあと、プロットする際の周波数軸の設定方法がわかりません。
どなたかアドバイスお願いします。
484デフォルトの名無しさん:2005/10/27(木) 16:49:01
>>483
少しは自分で調べようYO
485477=480:2005/10/27(木) 17:25:33
>>484
自分で調べてよくわからないから訊いたんだYO
もうちょっと自分でがんばるYO
486デフォルトの名無しさん:2005/10/27(木) 17:43:09
うーん。三角波のグラフの表示方法がわかりません。
式はだいたいわかるのですが・・・。

始めたばかりで、わからないことだらけですので誰かご教授お願いします。
487デフォルトの名無しさん:2005/10/27(木) 18:27:41
488デフォルトの名無しさん:2005/10/29(土) 19:28:29
javaからMatlabを実行したりすることってできるんでしょうか?
489デフォルトの名無しさん:2005/10/29(土) 19:40:59
>>488
それはjavaのスレで聞くべきなんじゃ・・・
490デフォルトの名無しさん:2005/10/29(土) 22:30:06
ある時系列データのスペクトルを見て
49.5[Hz]-50.5[Hz]の成分を除去する、
といったことがMatlabではできるのでしょうか。
具体的な関数などを教えていただけませんか。
491デフォルトの名無しさん:2005/10/29(土) 23:29:59
要するにフィルタで帯域制限するってことかな?
バンドエリミネーションフィルタをかけてやればいいと思う。
filter関数かconv関数を使うことになるんだけど,あまり詳しくないです('A`)


参考
ttp://www.cybernet.co.jp/matlab/support/helpdesk/r14/toolbox/signal/basics1.shtml
492デフォルトの名無しさん:2005/10/29(土) 23:33:11
どもありがとう
493デフォルトの名無しさん:2005/11/01(火) 14:59:23
Solaris版のmatlab使ってます。
コマンドライの引数にmファイルを指定して実行することはできるでしょうか。
$ matlab hoge.m
こんな感じです。(このままだと、matlabが立ち上がるだけです)
octaveだとできるのですが。

やりたいことは、シェルスクリプトの中に組み込むことです。
494493:2005/11/01(火) 18:25:43
誤:コマンドライ
正:コマンドライン

matlab --helpとやってみても、matlabが立ち上がるだけだし。
コマンドラインオプションはないのかなぁ
495470:2005/11/02(水) 16:48:40
>>472
具体的にはある入力を1秒に1回のサンプリングを1000回分して
その入力の最小値と最大値を求めたいのです。
自分が考えたsimulinkのやり方は、
1秒ずつディレイさせてそれをMinとMaxのブロックにぶちこむというもの
なのですが、それでは、MinMaxの入力の枝が1000個になってしまい
間違っているような気がしまして質問させて頂きました。

環境:MATLAB6.5、xp
496デフォルトの名無しさん:2005/11/02(水) 17:29:28
Linux版なら-nodisplayオプションでいけるはず。
ただし手元にLinux版がないので間違ってるかも

Windows版は今試してみたがGUI専門ぽい。
497デフォルトの名無しさん:2005/11/02(水) 20:17:18
>>495
つまり、1000サンプル分のデータの内の最大値と最小値を求めたいってことですか?
それでしたらバッファを使えば何とかなるかもしれません。
DSPブロックセットはインストール済みですか?

ちなみに、ディレイを1000個も使ったらメモリの関係で動作がすごいことになりそうです・・・
498デフォルトの名無しさん:2005/11/03(木) 19:29:07
>>496
うちのはWindows版みたいです。

>>497
おっしゃるとおりです!
実際には1000秒のシミュレーション中の変化する値の最小値と最大値を
随時更新していくという事をしたいのです。拙い説明ですいません。

今手元にMATLABがないので、DSPブロックセットの有無が分からないので
確認してからまた連絡させていただきます。
499デフォルトの名無しさん:2005/11/03(木) 20:18:48
>>498
シュミレーションは少なくとも1000秒以上行い,
1000秒ごとに最小値と最大値を更新する,ということでいいのかな?

それともシュミレーションは1000秒間行うだけ?

あと,最小値と最大値の更新はリアルタイムで行う必要がありますか?
ある程度の遅延があったら無理?

質問ばかりですが,一応確認させてください。
500デフォルトの名無しさん:2005/11/03(木) 21:09:25
>>499
シミュレーションが全体で1000秒ありまして、
最小値と最高値の更新は1秒ごとにしたいと思っています。

最小値と最高値の更新はリアルタイムであればベストですが、
ある程度の遅延があっても構いません。

>質問ばかりですが,一応確認させてください。
いえいえ、すごくありがたい気持ちです。
よろしくお願いします。
501デフォルトの名無しさん:2005/11/03(木) 21:33:26
なんだか思っているより単純な気がしてきた( ´Д`;)

↓じゃまずいんですか?

シミュレーションパラメータで

シミュレーション時間1000秒
固定ステップ,ステップ幅1にして

.┌────┐.  ┌────┐.  ┌────┐
. | データ  |__|.zero-order|__|.  MIN   |__  
. |  系列   |   |  hold   | |  |.       |
. |______|    |______|. |  |______|
               ↑    |
         sampling time:1.  | ┌────┐
                     |_|.  MAX  |__
                       |       |
                       |______|
502デフォルトの名無しさん:2005/11/03(木) 22:00:58
>>501
それと全く同じ事を最近試しましたがダメでした(;´Д`)
考え的にはあってるかなと思っていたのですが
MinとMaxのあとをスコープで覗いてみたところ全く同じ結果になってました。
なぜだぁ_| ̄|○
503デフォルトの名無しさん:2005/11/03(木) 22:10:45
んーMIN,MAXにはデータ保持機能ないのかな・・・
なら細工しないと無理そう
504デフォルトの名無しさん:2005/11/03(木) 22:50:46
simulinkつかったことないんですけど、
minからの出力を、またminに
フィードバックさせたりできないんですかね?
zero-order holdからの出力とマージさせれば
それまでの最小値がだせますよね?
505デフォルトの名無しさん:2005/11/03(木) 23:13:04
できますよ,と。
ただ,出力を直につなぐとMATLABがフリーズするので
Delayブロックを噛ます必要があります。
506デフォルトの名無しさん:2005/11/04(金) 17:35:30
トレーディングシステムスレで書いたのをコピペさせて頂戴。
MATLABで株価チャートを表示させたいんだが

とりあえずチャートのX軸に日付を出力させたいのよ。
けどdateを使うと始まりの日付だけしか指定できないし、
ネット上から落としてきた株価データファイルの日付と一致させられない。

どっかにサンプルは落ちてないものかね?
救っておくれ。
507デフォルトの名無しさん:2005/11/04(金) 18:35:25
ヒント:ttp://www.cybernet.co.jp/matlab/support/helpdesk/r13/toolbox/matlab/creating_plots/chbuil16.shtml#35810

つーか喪前ら、サイバネットのドキュメントくらい見ようYO
次スレのテンプレに追加した方がいいかな・・・

R13
ttp://www.cybernet.co.jp/matlab/support/helpdesk/r13/toolbox/matlab/learn_matlab/gs_colle.shtml

R14
ttp://www.cybernet.co.jp/matlab/support/helpdesk/r14/toolbox/matlab/learn_matlab/ch1intro.shtml


問題は次スレまで相当かかりそうだってことだけど('A`)
508デフォルトの名無しさん:2005/11/05(土) 10:44:37
おぉ〜こんなにしっかり纏められたドキュメントがあったのか
PDFドキュメントの存在しか知らんかったよ
どうもありがとう

未だにMATLABのトップページからどの道筋を行けば辿り着けるのか分からないが
ドキュメントの内容は充実しているくせに、サイト自体が使いにくい罠
509デフォルトの名無しさん:2005/11/05(土) 10:54:02
日本語ドキュメントから辿って行けばよかったのだね
技術サポートのページばかり通ってたよ
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
>>512−513
自己解決
515デフォルトの名無しさん:2005/11/09(水) 23:24:00
質問させてください。
05/11/09といったようにスラッシュで区切ってあるデータを
テキストファイルからloadするにはどうしたらよいのでしょうか?
一列目には日付、二列目・三列目には数字が入力されているテキストです。
05/11/09 100 200(←こんなかんじ)
load test.txt; だけでは05/11/09のうちの最初の5しか読み取って
いないようでした。
516デフォルトの名無しさん:2005/11/10(木) 00:22:00
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間の合計パワーを求めるにはどうしたらよいのでしょうか?
519デフォルトの名無しさん:2005/11/15(火) 00:28:55
forループで回すか,それよりsum関数で求めちゃうのがいいかも。
コマンドラインでhelp sumって打ち込めば説明が出てくるYO
520デフォルトの名無しさん:2005/11/15(火) 00:37:14
■幸福のコピペ(チョピペ)■
他のスレに貼り付けると□□□□■□□□□■□□□
□■■隠された文字が■浮き出るよ□□■■■□□□□
http://pc8.2ch.net/test/read.cgi/tech/1131282679/l50
□□□■■□■■□□□□□■■□□■■□■□□
237 :デフォルトの名無しさん :2005/11/14(月) 23:38:29
さあ話をそらしにかかりました□□□□■□□□■■□
□■■□□■□□□□■■□□■□□□□□■■□
521デフォルトの名無しさん:2005/11/15(火) 00:38:34
522デフォルトの名無しさん:2005/11/15(火) 15:01:58
>>517
俺も知りたい
523デフォルトの名無しさん:2005/11/17(木) 02:51:37
シミュリンクの高速化ってCで書き直すぐらいしか無いのかな・・
524デフォルトの名無しさん:2005/11/17(木) 03:05:17
MATLAB自体重いしなぁ・・・
複雑なプログラムだと結果出るまでに数時間,数日間ってのもざらだし。
その分書くのは簡単なんだが。
525デフォルトの名無しさん:2005/11/17(木) 16:19:05
リアルタイムワークショップ使ってみたら?
526デフォルトの名無しさん:2005/11/20(日) 14:26:42
ソルバの解説の所で、ステッフなシステムってどういうことなんだろ?
ttp://www.cybernet.co.jp/matlab/support/helpdesk/r13/toolbox/matlab/ref/ode15s.shtml
stiif=堅いらしいけど
ステッフの方が概して精度が低いみたい。
ノンスティッフシステム=例:外力のない剛体の挙動なんて記述もあるけど
ググッても良く分らなかった・・・
527デフォルトの名無しさん:2005/11/21(月) 00:44:11
ttp://www.osaka-kyoiku.ac.jp/~ashino/pdf/nagoya_matlab.pdf
漏れは全く知らんけどとりあえず
stiffソルバー(陰的方法)、nonstiffソルバー(陽的方法)とかあった
528526:2005/11/21(月) 20:13:21
>>527
有難う。
硬度比とか良く分らなかったけど、
当然だけどソルバによって計算結果が違う割には、
どのソルバが適当なのか理解出来てないって気持ち悪いな・・・
529デフォルトの名無しさん:2005/11/21(月) 23:19:28
「多変数関数でない」とかがちかいのかな?>>526
530デフォルトの名無しさん:2005/11/24(木) 12:08:03
質問です。
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秒にしてます。
これを時間軸で表したいのです。
お願いします。
534デフォルトの名無しさん:2005/11/28(月) 17:11:27
>>532
figure
535デフォルトの名無しさん:2005/11/28(月) 22:13:11
>>457
なっが〜いシリアルつかえば
コピーガードも何も関係ないよ
536デフォルトの名無しさん:2005/11/28(月) 22:15:27
>>461
> いまのStudent Versionには機能制限はないよ。
> 各ToolBoxもちゃんと使えるし。
> 起動時にプログラムCD-ROMを入れておかないといけない、
ver7はそうなってるんか?
ver6までは長い汁アル使えばそんなことしなくてもよかったし
537デフォルトの名無しさん:2005/11/28(月) 22:28:32
>>473
> 学生用のライセンスは機能制限なし(つまり何でも使える)なのに安価→
>  慣れてしまってMatlabなしには生きられなくなる→
>   そういう学生が理系就職する→
>    高額な一般ライセンスを購入→
>     Mathworksウマー→
>      プログラミングができない学生を再教育しなければならない企業はマズー
> という構図なんだが、判っててもはまってしまう。
> Matlabは便利だからとりあえずの結果を出すには最適だものな。

今業界ではオープン化、オープンソース化の動きが出ている。
その動きを予想して漏れはオープンソース版MATLABライクな言語
R言語に興味を示している。グラフ表示にはGNU plot.
ほかの言語としてはC++/Javaで応戦なり。
今まで研究室にいたメンバーは授業でいくら教わっても皆C/C++を
理解できなかった。そこで彼らは研究室に入ってからMATLABという言語に
出会って大半の者が「これが俺の求めていたものだ」とか言いだして感動しちゃってる。
漏れはその流れに逆らって苦労して時間をかけてC++/Javaに手を出した。
自作しなければならないものが多く、手探りがしばらく続き大変だったが、
今では自動化ツールにより開発効率がMATLABを使うよりも確実に向上している。
なんとかMathworksの魔の手から逃れることができた、漏れもすれ違いスマソ




538デフォルトの名無しさん:2005/11/28(月) 22:28:37
>>488
Javaスレでも質問したな?
だが誰も答えられなかったな?
漏れがちょっと答えたがRuntimeクラスを
使う以外わからなかったのだ。
ただしMATLABのマニュアルには
MATLABからJavaオブジェクトを
呼び出せると書いてあるのをみたことがある。
やりたいことはそれか?
Javaコードがすでに存在しているからそれを
どうにかしたいのか、それともMATLABコードが
すでに存在するからそれをどうにかしたいのか、
どっち?
それとも、webで何かをしたいのか?
 一体何をしたいのかかかないと
質問に答えにくい。

JavaからMATLABを呼び出す方法については
なにやら>>496がヒントを出しているみたいだぞ。
こいつをJavaのRuntimeクラスをつかって。
539デフォルトの名無しさん:2005/11/28(月) 23:08:02
新スレ立てました!

フーリエ変換が趣味です。
http://hobby8.2ch.net/test/read.cgi/hobby/1133005088/
540デフォルトの名無しさん:2005/11/29(火) 02:50:25
漏れてきにはWavelet変換がホットなんだけど。
もうフーリエ変換は(ry
541デフォルトの名無しさん:2005/11/29(火) 17:41:33
>>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フィルタを作りたい時
どのように入力したら良いですか?
545デフォルトの名無しさん:2005/12/09(金) 00:17:18
>>543
*** = 自分で作った関数名
546デフォルトの名無しさん:2005/12/11(日) 14:34:14
MATLABで、LMSアルゴリズをつかった、適応フィルタの作り方教えてください。
まじ、悩み中です
547デフォルトの名無しさん:2005/12/11(日) 15:04:08
>>546
どういった条件の下でやるのか書いてもらわんことにはね・・・
548デフォルトの名無しさん:2005/12/11(日) 21:34:25
ディジタル音声のデータに雑音がまざってて、雑音除く為に、適応フィルタを
使いたいんですが。。
549デフォルトの名無しさん:2005/12/11(日) 21:49:31
ヒント:サイバネットホームページより
ttp://www.cybernet.co.jp/matlab/support/helpdesk/r14/toolbox/filterdesign/adaptive.shtml

アダプティブフィルタはそれほど大した式で記述されてるわけじゃないし,
5行程度のコードでできるYO

でもディジタル音声ってことは,1,0のバイナリデータだよねぇ・・・
アナログ音声ならアダプティブフィルタ使うのはわかるけど・・・
ディジタルにのったノイズはどうしようもない気がする。

まぁ,間違ってるかもしれないけど一度D/A変換する必要があると思われ。



550デフォルトの名無しさん:2005/12/12(月) 21:40:12
作成した信号を再生するとともに、その反射との合成を観測する
定在波観測実験にMATLABを用いようとしたのですが
信号データを作成して再生と録音コマンドを実行しても
再生が終わった後録音が始まってしまい、目的の結果が得られませんでした。
スピーカーから音を出すと同時にマイクで録音するためにはどうすればよいでしょうか?
551デフォルトの名無しさん:2005/12/13(火) 00:22:41
>>545
「その文字はMATLABで使えません」とか言われました。
552デフォルトの名無しさん:2005/12/14(水) 08:25:36
>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関数
・それぞれの列に対して処理を行うことを明示する関数

などがあれば出来そうだと思い、探しているんですが見つけられません。
素人質問で申し訳ありませんが、よろしくお願い致します。
555554: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でやっています。
558デフォルトの名無しさん:2005/12/20(火) 20:39:48
>>556
fft
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のほうで使ってくれるメモリの量は決まっているのでしょうか?もし、それを解除できるような方法がありましたら、どなたかご教授願います。
561デフォルトの名無しさん:2005/12/23(金) 10:01:32
>>560
メモリ上限を増やす方法は知らないが、
グレイスケールなら
A = repmat(int8(0), [640 480 600])
にしてみては?
562デフォルトの名無しさん:2005/12/23(金) 14:16:54
563デフォルトの名無しさん:2005/12/26(月) 00:57:42
>>560,562
ありがとうございます。参考にさせていただきたいと思います。
564デフォルトの名無しさん:2005/12/29(木) 02:09:39
>559
Octave
http://www.octave.org/

基本文法は同じですが関数名が違うものも多いので、
Matlab用のM-ファイルがそのまま動かないことも多いです。
565デフォルトの名無しさん:2005/12/29(木) 02:12:50
>556
Signal Processing Toolboxでよければ、
periodgramをはじめ、pwelch、pcov、pyulear、pmusic、peig...
多数のPower Spectrum Density Estimationができます。
566565:2005/12/29(木) 02:14:53
追記です。Mathworks社のTech Notesに以下のものがありました。
私はこれを参考にして音響信号をプロットしています。
http://www.mathworks.com/support/tech-notes/1700/1702.shtml
567デフォルトの名無しさん:2006/01/01(日) 00:15:52
Matlab Student Version R14は、デスクトップと2台目のノートブックとの2台にインストールして使うことは出来ますか?
568デフォルトの名無しさん:2006/01/02(月) 12:14:43
>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台にインストールして使うことは出来ますか?
570デフォルトの名無しさん:2006/01/03(火) 01:29:48
「インストールして使う」ことはできる。ライセンス的にどうかは知らない。
自分は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台目へのインストールが出来るかどうか知りませんか?
573デフォルトの名無しさん:2006/01/06(金) 10:46:27
>>572
メーカーに聞くといいよ。
574デフォルトの名無しさん:2006/01/06(金) 14:45:59
matlabが早く動くPC一台ほしいんだけど
オススメのCPUってどれだろう?
バージョンは6.5でも7でもいい
575デフォルトの名無しさん:2006/01/06(金) 15:46:53
夜名
576デフォルトの名無しさん:2006/01/07(土) 13:32:14
t=0:0.01:pi;
x=????????
polar(t,x);

これで結果が楕円になるような関数xが欲しいのですが
どなたか救いの手をよろしくお願いします。
577デフォルトの名無しさん:2006/01/07(土) 19:27:28
>>576
数学の本を嫁
578570:2006/01/08(日) 00:59:44
>572
そういえばその友人はR14SP1を使ってる。
MathworksのページにはSP3からはアクティベーションが必要みたいなことが書いてあるね。
http://www.mathworks.com/academia/student_version/faq/
ここには「同時に2台までアクティベーション可能」って書いてある。
アクティベーション情報を別マシンに移動させることもできるみたいだよ。
579デフォルトの名無しさん:2006/01/09(月) 20:50:13
matlabで多倍長の変数などは作れませんか?
どのようにやれば良いのでしょうか?
580デフォルトの名無しさん:2006/01/12(木) 16:43:07
MATLABで音声信号等の包絡線を取るってことは出来るんでしょうか?
581デフォルトの名無しさん:2006/01/12(木) 19:33:14
>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
マジエロ!!見てて恥ずかしいよ〜
 http://www.geocities.jp/imananji2321/


音楽室
584デフォルトの名無しさん:2006/01/15(日) 20:54:47
585デフォルトの名無しさん:2006/01/16(月) 15:46:28
matlabで
読みこんだファイルに対する積分(シンプソン則等)
は出来ないのでしょうか?
初心者なものでよろしかったら
アドバイスして下さい.
586デフォルトの名無しさん:2006/01/16(月) 23:21:55
できる。
ファイルを読み込む部分と、数値積分をする部分に分けて考え、
マニュアル読んでがんばれ。
587デフォルトの名無しさん:2006/01/17(火) 12:13:31
>>586
ありがとうございます。
参考にします.
588デフォルトの名無しさん:2006/01/23(月) 16:54:51
MATLABのシミュレーション中に入力値を変更したいんだけど、仕方がいまいち分かりません。。。
誰か分かる人いませんか??help me!!
あと、シミュレーション画面をGUIで表示する方法も分かる方がいれば教えてください。
589デフォルトの名無しさん:2006/01/23(月) 22:21:55
>>588
Simulinkのこと?
どのように変更したいのかなぁ。
チューナブルパラメータだと、値を変えれば反映されない?
590デフォルトの名無しさん:2006/01/24(火) 01:48:15
>>589
Simulinkのことです。
チューナブルパラメータが何だかよく分からないんだけど、要はシミュレーション結果をグラフで表示してるんだけど、途中で値を変化させてそれにともなってグラフも変化してほしいんです。
グラフをリモコン(GUI)で自在に操ってる的な感じかな。あ、だからシミュレーション途中の動いてるグラフがGUIの画面中で表示させたいんです。
無理なんですかねぇ?分かりますか?
591デフォルトの名無しさん:2006/01/24(火) 03:18:54
>>590
やりたいことが漠然としすぎててワカラナス
もうちょいまとめてください
592デフォルトの名無しさん:2006/01/26(木) 00:57:17
スイッチで切り替えは?
593デフォルトの名無しさん:2006/01/26(木) 08:16:24
>>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
http://www.robot.mach.mie-u.ac.jp/class/sc_enter.html
ここにある課題2がどうしても分からないです。。
MATLABをつかって解くらしいんですが。。。
597デフォルトの名無しさん:2006/01/27(金) 18:58:27
>>596
先生や先輩あるいは同じ学科の友人に聞いた方が
得られるものは多いと思いますよ。今後のためにも。
598デフォルトの名無しさん:2006/01/27(金) 18:59:49
>>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しか使えないんですか?
601デフォルトの名無しさん:2006/01/28(土) 03:16:10
>>600
んー・・・
Simulink歴はどの程度ですか?
話を聞く限りでは初めて触るような印象を受けるのですが・・・
そうだとすると説明するのが逆にムズカシス(´・ω・`)

ttp://www1.bbiq.jp/kougaku/matlab_intro.html
ググって引っかかったページですが,例えば【13】でのGainブロックの値を
mファイルではなくブロックパラメータに直接記入し,さらにシミュレーション中に他の値に変えれば
Scopeブロックに表示される結果も変わります。

わざわざワークスペースから引っ張ってこなくても,モデルのブロックの値を変えればいいと思うのですが・・・
おっしゃっているチューナブルパラメータってのは単にこういう変数ってことでいいのかな?
602デフォルトの名無しさん:2006/01/28(土) 04:57:31
>>601
ほぼ初心者ですね。
でも、担当の教授が先月亡くなりまして…。
しかも、先輩もMATLABはあまり分からないとのことで、helpが必要なんです。。。

確かにブロックパラメータに直接数値を記入すれば、シミュレーション中にも結果は変わるようですが、ブロックパラメータに数値でなく変数をいれ、ワークスペースで変数の値を変更しても結果はシミュレーションしなおすまで変わりません…。
なぜでしょうか?不可能なんですか?
603デフォルトの名無しさん:2006/01/28(土) 05:47:38
>>602
今手元にMATLABないから確かめられないけど,
シミュレーション実行中に変えられる値と変えられない値があります。
そのせいかも知れません。

どういった値を変化させたいんですか?
604デフォルトの名無しさん:2006/01/28(土) 09:40:32
>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に反映されて出てくる。
違いが分からん。
606デフォルトの名無しさん:2006/01/28(土) 15:50:56
サイバネットのWEBサイトがリニューアルしてる。
おかげでブックマークがつながらないぽ。
卒論の時期に面倒なことしないでくれよー。
607デフォルトの名無しさん:2006/01/28(土) 16:19:05
>>605
サイバネットに資料があるので読んでみるといいと思います
ttp://www.cybernet.co.jp/matlab/support/manual/r14/toolbox/simulink/index.shtml


で,変数の件ですが
ttp://www.cybernet.co.jp/matlab/support/manual/r14/toolbox/simulink/ug/how_sim8.shtml#342208
にあるようにシミュレーション実行中の変数の変更は,シミュレーションを一時停止してやらないと無理そうです。
ですから,シミュレーション実行中にワークスペースで値を変化させても,
シミュレーションを一時停止し,再実行しないと反映しないと思われます。


>>変えられる値と変えられない値とは?例えば?
変えられる値の例で言えばCostantの定数
変えられない値はSamplingtimeかな?
この資料で言うチューニング可能な変数という奴でしょう。
608デフォルトの名無しさん:2006/01/28(土) 16:20:55
sage
609デフォルトの名無しさん:2006/01/30(月) 05:07:54
だからスイッチで切り替えではダメなんかよ?
610デフォルトの名無しさん:2006/01/30(月) 19:01:44
スイッチじゃ融通が利かないじゃない
変数をそんなに扱えるわけじゃないし
611デフォルトの名無しさん:2006/02/01(水) 02:23:24
>ワークスペースかなんかで初期値を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 です。よろしくお願いします。
613デフォルトの名無しさん:2006/02/01(水) 23:46:35
そんなことも聞かなきゃできんのか
614デフォルトの名無しさん:2006/02/02(木) 05:29:29
自己相関法に基づくLPC分析でパワースペクトルを算出するようにしている。
このとき、Signal Processing Toolboxにある関数pyulear.mを使用する。
ってどうやって使用するのですか?
615デフォルトの名無しさん:2006/02/02(木) 08:48:55
>612
reshape
616デフォルトの名無しさん:2006/02/03(金) 01:42:50
こんな時間に回答してくれる神はいるのだろうか・・・

伝達関数の計算をしたいんですけど、
inv(sI-A)とかやりたいんですが、
当然s*Iじゃ受け付けてくれず、
tf('s')とかした後に、s*I-Aとやると、おそらく行列ではなくなって、
逆行列とか計算できなくなるのですが・・・

いったいどうしたらいいんでしょうか?
手計算じゃきついです・・・。
617デフォルトの名無しさん:2006/02/03(金) 01:54:46
正方行列でいいのかな?
Aは適当な正方行列,sはスカラとしてIはそのままIとして使ってないよね?
単位行列はたしかeye関数で生成すると思ったんだけど・・・
618デフォルトの名無しさん:2006/02/03(金) 02:24:43
正方行列です。
Iもちゃんと単位行列です。
sはラプラス変換のときのsです。
619デフォルトの名無しさん:2006/02/03(金) 03:03:17
ttp://www.cybernet.co.jp/matlab/support/index.shtml

ラプラス変換のs?
よくわからんけど,スカラー量でいいんだよね?

とりあえずサイバネットを見てみてくれ
MATLABについて詳しく書いてある
漏れはもう眠いから今日は寝る('A`)ノシ
620デフォルトの名無しさん:2006/02/03(金) 03:07:58
もちろん探してから質問したわけですが。。
答えてもらったようで、なんも答えてもらってない・・(´ д`)
621デフォルトの名無しさん:2006/02/03(金) 03:12:21
酷い言い草だ・・・
結局sについて何も答えてないじゃないか
勝手にするがよろし
622デフォルトの名無しさん:2006/02/03(金) 04:18:26
( ゚д゚)ポカーン
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)
624623:2006/02/03(金) 23:18:49
補足

>623で書いたやり方はMatlabのインストールの仕方やネットワーク構成が複雑だと
エラーになることがあるよ(ライブラリの整合性の関係で)。

スタンドアローンで動かしているとかOSをサーバ/クライアントで統一しているとかなら問題なし。
625デフォルトの名無しさん:2006/02/05(日) 21:54:50
すいません、初心者な質問で申し訳ありません。
行列の要素で一定の値以上のものだけを
ほかの行列にしまっていきたいのですが、よい方法はないでしょうか?
できればfor文を使わない方法で教えていただきたいのですが…
よろしくお願いします
626デフォルトの名無しさん:2006/02/05(日) 22:21:21
>>625
find関数使ったらいいんじゃない?
627デフォルトの名無しさん:2006/02/05(日) 22:26:22
早速の返信ありがとうございます!
find関数について調べてみます。
628625:2006/02/05(日) 22:38:15
んーどうもうまくいきませぬ…
リンクからnonzerosという関数を見つけたのですが
値が0以外ではなくこちらから指定した値以上のものを抽出したいのですが…

たびたびすいません。ご助言お願いします。m(_ _;)m
629デフォルトの名無しさん:2006/02/05(日) 23:00:12
>>628
A 任意の行列
x  閾値
find(A>x) A>xの要素の"インデックス"

これで動くと思うけど。。。
630625:2006/02/05(日) 23:11:02
ほんと、ど素人なものですいません
”インデックス”が抽出できるのはわかりました。
ただ、そこから中身をどう持ってくるのかわからないんです…
631625:2006/02/05(日) 23:13:44
何とか解決しました
ありがとうございましたm(_ _)m
632デフォルトの名無しさん:2006/02/05(日) 23:48:38
>>631
解決して何よりっす。
633デフォルトの名無しさん:2006/02/06(月) 08:42:00
>>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

よろしくお願いします。
635デフォルトの名無しさん:2006/02/07(火) 02:23:08
holdしてみっせ。
自分だったら、for文の前に
plot(0, 0, 'k.', 'visible', 'off');
hold on;
と書くかな。
end文のあとにhold offも忘れずに。
636634:2006/02/07(火) 13:18:53
>>635
なるほど、ありがとうございます。

ですが、plotしたときに、 plot(A(1, :), A(2,:), 'b.-');とか線でつなぎたいのですが、
そこまではやっぱりできないですかね?
637デフォルトの名無しさん:2006/02/07(火) 23:26:59
>>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ブロックを使用した際、
初期バッファが割り当てられますが、
そのバッファの中身を覗くことってできますか?
639デフォルトの名無しさん:2006/02/08(水) 16:24:05
初期バッファの設定ってなかったっけ?
なければ0じゃないかな
640デフォルトの名無しさん:2006/02/09(木) 03:09:10
matlabで設計変数を変えてANSYSで計算する循環プログラム作りたいんですけどどうすればいいんでしょうか.
641デフォルトの名無しさん:2006/02/09(木) 03:10:53
>>640
どうすればいいんでしょうかって・・・( ´Д`;)
少しは自分で考えれ
話はそれからだ
642デフォルトの名無しさん:2006/02/10(金) 00:22:25
MATLABのFFT関数を用いる際、デフォルトでは何の窓関数に
設定されているのでしょうか?分かる方いましたら教えてください
643デフォルトの名無しさん:2006/02/10(金) 00:27:07
基礎的な事項は自力で乗り越えましょう

コマンドでhelp fft
644デフォルトの名無しさん:2006/02/10(金) 00:52:20
ところで、あまり話題にならないんだけど、Matlabを個人で買うときの値段っていくら?
サイバネットのページみても「お問い合わせください」だったと思うんだが。
645デフォルトの名無しさん:2006/02/10(金) 09:15:55
startup.mでデフォルトの線の太さを指定することはできませんか?
646デフォルトの名無しさん:2006/02/10(金) 10:04:41
>>645
手元に無いので自信は無いし、やったこともないが、get_paramの
ヘルプを見ると、ヒントがあるかも。
モデルごとに覚えられるパラメータ(デフォルトフォント等)だと、
変更前と変更後でmdlファイルのdiffを取ったら一発。
647デフォルトの名無しさん:2006/02/10(金) 22:06:30
>>644
35万くらい

正確な値段は会社にカタログがあるが土日休みだ
648デフォルトの名無しさん:2006/02/11(土) 08:21:12
>>647
パーソナルライセンスだったらそんなもんだね。
ネットワークライセンスだったら、3倍くらい?
特に、個人と企業の差は無かったと思う。
たくさん買えば、少し割り引きしてくれるけど。
649デフォルトの名無しさん:2006/02/13(月) 02:01:08
1から1000までの整数があるとして、その中から6つだけ重複なく選ぶのを
シンプルにやるにはどうしたらいい?
a = randperm(1000);
b = a(1:6);
でもいいけど randperm の無駄さ加減が目に余る。
650デフォルトの名無しさん:2006/02/13(月) 04:44:17
初歩なのかもしれませんが、
関数の引数の初期数はどのように設定するのでしょうか?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の効果がよくわかりません
652デフォルトの名無しさん:2006/02/13(月) 20:31:36
>>650
nargin
詳しくはライブラリ関数のソース見ろ
653デフォルトの名無しさん:2006/02/16(木) 21:53:19
3次元プロットでy軸を片対数をプロットにしたいのですがどうすればよいでしょうか
適当な関数が見つかりません教えてください。
654デフォルトの名無しさん:2006/02/17(金) 01:13:06
fiugreプロパティ
655デフォルトの名無しさん:2006/02/24(金) 22:20:18
stateflowに関してわかりやすい解説サイトありませんかね?
stateflow 解説 使い方 チュートリアル とかぐぐってもなかなかいいのが見つからなくて
656デフォルトの名無しさん:2006/03/01(水) 01:39:51
MATLABで水温の時間緯度断面図を書きたいのですが、調べても調べても全くわかりません。
どなたか、どうか、この件について教えていただけないでしょうか?
よろしくお願い致します。
657デフォルトの名無しさん:2006/03/02(木) 14:18:25
時間発展する行列のスナップショットを全部取る必要があるのだけど、

w_log(:,:,t) = w;

という代入をすると、ものすごく重い。
ちなみにwのサイズは(n,n)。
w_logはサイズ(n,n,t_max)で事前に初期化済み。

どう書くのが一番速い?
658デフォルトの名無しさん:2006/03/02(木) 20:40:27
>>657
スワップしてるんじゃないか?
t_maxを物理メモリのサイズに抑えて、こまめにセーヴ・初期化
659デフォルトの名無しさん:2006/03/03(金) 12:07:40
>>658
ではないみたい

どうやら、global変数でw_logを持たせると代入も速いが、
引数渡しでw_logを持ち回ると、代入時に劇遅になるみたい。
660デフォルトの名無しさん:2006/03/03(金) 12:23:26
>>659
matlab はたしか、
関数内で変化がない場合はアドレス渡しだけやって、
変化がある場合は、値渡し(コピー)するはず。そのせいだと思う。
661デフォルトの名無しさん:2006/03/03(金) 12:27:09
ソルバーしたい。
662デフォルトの名無しさん:2006/03/06(月) 17:41:52
MATLABの勉強をしようかと思っているんですが、
このソフトをフリーでダウンロードすることってできますか?
初歩的な質問ですいません。。
663デフォルトの名無しさん:2006/03/06(月) 22:25:22
Matlabは製品なので、無料でダウンロードすることはできません。
海外ならMathworks、日本国内ならサイバネット・ジャパンに問い合わせてください。
学生版なら1万円くらい、正規版はたぶん40万円くらい。

フリーウェアでMatlabに似たような文法のソフトがいくつかありますが、
なかでもOctaveはお勧めできます。
664デフォルトの名無しさん:2006/03/10(金) 00:54:24
Cのソースコードに落とすことができると聞いたのですがどうしたらよいでしょうか?
665デフォルトの名無しさん:2006/03/10(金) 07:15:02
>>664
Real-Time Workshop
666デフォルトの名無しさん:2006/03/11(土) 14:06:01
MATLAB Compilerでexeファイルにし、MATLAB環境がないPCでそれを実行すると
最初にDOS窓が開いてしまう。かなり見栄えが悪いです。このDOS窓を開かないよ
うにする方法を知っている方がいたら教えて下さい。
667デフォルトの名無しさん:2006/03/11(土) 19:05:03
>>666
Linux使う
668デフォルトの名無しさん:2006/03/11(土) 20:32:04
>>666
Xp/2000の場合だが
exeのショ-トカットを作成して、その属性を開き、実行時の大きさを
最小化すれば殆んど目立たんよ。
669デフォルトの名無しさん :2006/03/11(土) 22:09:54
>>667
Thanks
>>668
Thanks 確かにタスクに引っ込みました。
670デフォルトの名無しさん:2006/03/15(水) 08:57:02
ソルバーしたい。
671デフォルトの名無しさん:2006/03/15(水) 10:21:10
>> edit test1.m
でもって、test1.mを(もしあれば)開けるけど、
逆に、エディタで開いているファイルを閉じるコマンド
(マウスを使わない)
は、ないでしょうか?
672デフォルトの名無しさん:2006/03/15(水) 23:13:01
GUIプログラミングで、複数のオブジェクトのCallBack関数に
すべて同じ処理させたい場合、その共通処理用のmファイルを
別に作成しなければならないのでしょうか?

GUIプログラミング作成時に自動生成されるmファイル内に、上記
共通処理用のfunctionを作成できないものなのでしょうか?

ご教授お願いいたします。
673デフォルトの名無しさん:2006/03/16(木) 17:57:03
>>671
CTRL+F4
で現在編集中のファイルが閉じる
674デフォルトの名無しさん:2006/03/18(土) 13:05:53
レスサンキュー
でもこれだと、一旦meditorに行ってからの操作になるよね。
MATLABのコマンドウィンドウから閉じる方法が知りたいんだけど。

スクリプトに書いて、最初に開いているmファイルを閉じたいんだが、
できないのかな?
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
676672:2006/03/22(水) 23:11:43
自己解決しましたです。
677デフォルトの名無しさん:2006/03/24(金) 08:49:38
Suse 9からFedora 5にOSを変えたところmatlab7が正常にインストールできません。
同じような症状の人はおりませんでしょうか?
678デフォルトの名無しさん:2006/03/25(土) 09:53:04
>>667
インストールできません?
こっちはインストールはできたんだけど、立ち上がらないんだよね。
ライブラリがどうのとか文句言われて。
妙な方法で解決したけど、なんだかなという感じ。
次のリリースで直ってるといいんだけど。
679677:2006/03/25(土) 13:27:09
すみません。同じく、インストール完了までは行ったのですが、正常にインストールできなかったようで
立ち上がりませんでした。もしよかったらその解決方法を教えていただけないでしょうか?
680デフォルトの名無しさん:2006/03/25(土) 17:29:52
最近出版された
「だれでもわかるMATLAB即戦力ツ-ルブック」よくできてる。
今まで、初心者向けの和文ではサイバネットの講習用テキストに勝るものなかったからね。
681デフォルトの名無しさん:2006/03/25(土) 18:13:49
>>679 解決になっているのか全く分からないのですが、
matlabを何か別のlinuxマシンに入れて、nfs経由でfedora core 5のマシンから
そのディレクトリにアクセスできるようにすると立ち上がります。
システムを入れたディスクにmatlabを入れてしまうと、
libwmlaback.soがどうのといって立ち上がりません。
nfs経由だと立ち上がるのに、そのまま/usr/localなんかにコピーしてくると立ち上がりません。
ファイルは全くいっしょのはずなのに、どうなっているんでしょう。
ちなみにバージョンはR2006aです。
682デフォルトの名無しさん:2006/03/26(日) 18:37:52
Windows 上で Octave を Matlab ライク使うフロントエンドが発表されたようです
http://www.math.mcgill.ca/loisel/octave-workshop/
これのもう一つの特徴はMinGW上でコンパイルされている事です
Cygwin無しで動くのですね
683デフォルトの名無しさん:2006/03/29(水) 23:34:50
もうすぐMATLABを使う事になったのですが言語に関する知識がほとんどありません。

何を勉強するべきでしょうか? C++などを勉強すればいいんですか?
684デフォルトの名無しさん:2006/03/29(水) 23:49:42
MATLABを勉強するべきじゃないの?
いや煽りとかじゃなくて
685デフォルトの名無しさん:2006/03/30(木) 00:37:49
禿同
具体的課題があるなら習得は速いよ もち努力次第だけど
686デフォルトの名無しさん:2006/03/30(木) 02:42:05
だよな。matlab 使うんだから matlab 勉強すべきにきまってら。
低脳にもほどが(ry
687デフォルトの名無しさん:2006/03/30(木) 12:34:19
・・・MATLABってC++やBVで動く物じゃないんですね^^;
ありがとうございます。

>>686 すいません 「Matlab勉強しといて」って先生に言われただけで
さっぱりわかんなかったのです。低脳でした orz
688デフォルトの名無しさん:2006/03/30(木) 12:51:57
釣りじゃなさそうなので
http://www.amazon.co.jp/exec/obidos/ASIN/4798008478/249-1329616-0032338
これが行列操作分かりよかったので最初の数章だけでも読むといい
689デフォルトの名無しさん:2006/03/30(木) 13:55:45
まずは入門サイトをつかって
実際にやってみることだと思うがね。
とりあえず
x = 1
とコンソールに入力してみるところから始めればいいかと思うが。
690デフォルトの名無しさん:2006/03/30(木) 14:35:20
少しでも自分で調べてみればわかりそうなもんだが。
なぜまずそれをしない?
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')
を使えばいいんですね。
事故解決しました。すみません...
693デフォルトの名無しさん:2006/04/06(木) 13:52:30
matlabのR2600aはどこでダウソできまつか?
694デフォルトの名無しさん:2006/04/11(火) 15:58:10
plot したときに背景色が黒になるときと白になるときがあった
と思うんだけど、どうすれば白に固定とかできます?
695デフォルトの名無しさん:2006/04/11(火) 21:02:31
Octaveってフリーソフト?
696デフォルトの名無しさん:2006/04/11(火) 23:02:19
>>694
ハンドルグラフィックス
697デフォルトの名無しさん:2006/04/12(水) 00:04:39
>695
うん
698デフォルトの名無しさん:2006/04/12(水) 06:05:50
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
Amazon.co.jp:ディジタル・サウンド処理入門―音のプログラミングとMATLAB(Octave・Scilab)における実際ディジタル信号処理シリーズ: 本
http://www.amazon.co.jp/exec/obidos/ASIN/478983090X/503-7139237-9691946

Amazon.co.jp:MATLABによる組み込みプログラミング入門―SimulinkとReal‐Time Workshopを使ったMeasurement & Control 計測・制御シリーズ: 本
http://www.amazon.co.jp/exec/obidos/ASIN/4789837173/qid=1144947422/sr=1-1/ref=sr_1_2_1/503-7139237-9691946



この2冊はいけっこうお勧めだと思う。
音響もしくは機械制御というそれぞれの分野にいる人間には
役立つと思う。
703デフォルトの名無しさん:2006/04/14(金) 04:03:34
MATLABのRelease14(ServicePack3)をインストールしようとすると
一枚目は普通にインストールできてもまったく追加プロダクトが入れられない

「1. 新規および更新されたプロダクトを確認するためにThe MathWorks社のウェブサイトに接続できませんでした。」

と出てくるのだけどどうすればいいのだろう
助けて
704デフォルトの名無しさん:2006/04/14(金) 14:55:16
正規のPLPを持ってない人の場合はそうなります。
705デフォルトの名無しさん:2006/04/15(土) 11:33:46
追加プロダクト(CD2〜3枚目)のライセンスが多ければ多いほど
PLPは長ーーーくなっているはず。
706703:2006/04/15(土) 14:52:29
そうだったのか、ありがとう>>704-705
うちは
14-*****-*****-*****-*****
くらいの長さなんだけど、多分これでは短いのでしょう
(ウチの先生は「Toolbox全部使えるように注文したから頑張ってくれたまえHAHAHA…」といっていたのに…)

それなら追加プロダクトを使えるようにするには何の手続きをすればいいの?
707デフォルトの名無しさん:2006/04/15(土) 16:10:59
>何の手続きをすればいいの?
@既存ツ−ルの保守契約を結んでいないと追加のToolboxは販売してくれないから
 もし、結んでないなら、まずこれを結ぶ必要あり。
Aあとは追加したいToolboxの購入費用を支払うだけ。
>Toolbox全部使えるように注文したから...。
全部追加して&保守契約を結ぶとエライ費用だと思うよ。企業の場合はね。

シンボル計算はMathmaticaが優れているけど、数値解析、システム制御はMATLABの
1人勝ちだから強気の商売やってるよ。(>サイバネットさん)
708デフォルトの名無しさん:2006/04/15(土) 17:31:37
目的が決まっているなら、本当に必要なToolboxだけを購入/保守しないと
大変な金額が・・・。
だからOctaveに・・・。
でも目的によっては非力が玉に瑕。ごめんちゃい。
709デフォルトの名無しさん:2006/04/16(日) 11:25:27
>>706
>(ウチの先生は「Toolbox全部使えるように注文したから頑張ってくれたまえHAHAHA…」といっていたのに…)

今,Toolboxってすごくたくさんあるから,全部使えるように注文ってすごいぞ。
710デフォルトの名無しさん:2006/04/16(日) 13:02:42
711デフォルトの名無しさん:2006/04/17(月) 09:14:55
800万円ぐらい払えるでしょ
712703:2006/04/17(月) 09:51:04
色々とありがとうございます

先生に聞いてみたところ、MATLABの注文は昔の上級生任せにしていたらしく
注文すればToolboxも自動的に全部つくと思っていたようです
道理で「安くついた」と言っていたわけだ…
現在はその上級生が変わりに注文していたMATLAB6.5の方を使っています(いくつかToolboxがついていたので)

そこで更に質問なのですが、6.5のToolboxを7.0のフォルダに移してサーチパスを通せば使えるでしょうか?
713デフォルトの名無しさん:2006/04/17(月) 09:52:39
TOOLBOXの話にわりこむけど個人で作られたフリーのBOXがたくさんあるところって誰か知ってる?
714デフォルトの名無しさん:2006/04/17(月) 13:36:35
mathtoolsでも探せば?
715デフォルトの名無しさん:2006/04/17(月) 21:26:42
>712
パス通せば答えは自明でしょう〜♪
716デフォルトの名無しさん:2006/04/19(水) 20:17:39
GUIのpushbuttonにVB、VCのようにオリジナルのpictureを貼り付けたい
のですが、その方法が判りません。
もしできるのなら伝授下さい。お願い致します。
717デフォルトの名無しさん:2006/04/20(木) 12:53:19
% 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の制限がなくなればいいのだが。
718デフォルトの名無しさん:2006/04/20(木) 23:41:04
乙!
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に設定する方法を探しています。
ちなみに外部機器の製造元はどうやって設定するのかわからないといっています。
どなたか助けてください。~
721デフォルトの名無しさん:2006/04/23(日) 13:10:29
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」とエラーが出てしまいます
正しく最大値を求めるにはどうすればいいのでしょうか?
723デフォルトの名無しさん:2006/04/23(日) 19:32:18
エラーを見る限りだと,MAX関数に代入できるのは,実数値のみのようです。
なので,複素数の絶対値を取る必要があるのではないかと。

max(abs(u))

で試してみてはいかがでしょうか?
724デフォルトの名無しさん:2006/04/23(日) 19:57:34
シム板と機械・工学板と電気電子板に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の設定自体を
変えたことにはなりませんよね?設定自体を変えるにはどうすればいいのでしょうか?
727デフォルトの名無しさん:2006/04/24(月) 23:23:38
>>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で具体的にどうすればいいのですか?
730デフォルトの名無しさん:2006/04/27(木) 10:32:26
>>728
ispcとかisunixとか、そんなんじゃなかったっけ?
731デフォルトの名無しさん:2006/04/27(木) 11:52:26
>>730
ありがとうございます。
732デフォルトの名無しさん:2006/04/27(木) 13:17:53
質問させてください。
plot3(x,y,z)で出力した3次元のグラフィックのy,z平面にcontour(y,z)を載せる場合はどのように
したらいいですか?
hold on を使うとx,y平面に載ってしまいます。
733デフォルトの名無しさん:2006/04/27(木) 14:21:19
x=0とした3次元のデータにしたらどうだ?
734デフォルトの名無しさん:2006/04/27(木) 15:59:26
>>733
その方法が、わからないっす・・・。
735デフォルトの名無しさん:2006/04/27(木) 23:24:51
>>729
外部機器はUSB、LAN、GPIB、RS...etc 何のいんた−faceで制御してんの?
ToolBoXはInstrument Control ToolBox...etc 何使ってるのかな?
736通りすがり1:2006/04/28(金) 06:47:13
USBを使ってます。toolboxは使ってません。
737デフォルトの名無しさん:2006/04/28(金) 14:40:51
>>734
いっそのことyz平面がxy平面になるように座標変換すればいいじゃない
738デフォルトの名無しさん:2006/04/28(金) 23:19:45
>>736
おれっちが無知なのかもしれんけど
Instrument Control ToolBox なしでUSB機器制御できてのか?
739デフォルトの名無しさん:2006/04/30(日) 19:28:26
おしえてください
関数のfactorialってベクトルあるいは行列を引数にとることは
できないんですか?
factorial([1,2])=[1,2]
みたいに。というよりも、やってみたらできないので、
何か代替法があれば教えていただけると幸いです。
よろしくお願いします。
740デフォルトの名無しさん:2006/04/30(日) 21:17:26
>>739
scalar。
741デフォルトの名無しさん:2006/04/30(日) 22:09:29
scilabで3次元グラフをカラフルにするにはどうすればいいでしょうか?
742739:2006/04/30(日) 22:25:41
>>740
レスありがとうございます。
しかし、scalarとは何でしょうか?
関数でもないみたいですし、ヘルプ見ても載ってないですし・・。
あるいは、ベクトルでなくスカラー上でしかfactorialは定義されない
という意味でしょうか?
743デフォルトの名無しさん:2006/04/30(日) 22:26:35
ある数が実数か虚数かを判定する関数はあるでしょうか?
744デフォルトの名無しさん:2006/04/30(日) 22:36:20
745743:2006/04/30(日) 22:44:55
>>744
早速にありがとうございます.
746デフォルトの名無しさん:2006/05/01(月) 21:50:57
>>739
for..end
747デフォルトの名無しさん:2006/05/02(火) 23:57:08
StudentVersionの購入を検討しているのですが、
R14SP3 と R14SP1 はどちらがお勧めですか?
748デフォルトの名無しさん:2006/05/03(水) 09:46:00
StudentVersionは知らんけど、
R14SP1→R14SP3→Release 2006a(7.2)
でアップデ-トしてる。 最新はRelease 2006a(7.2)。
749デフォルトの名無しさん:2006/05/04(木) 21:27:30
R14SP3以降は、スライダーゲインが特許関係でなくなったような…
それ以外は、そんなにかわらんような…
俺はR12.1を、メインで使っているような…
750デフォルトの名無しさん:2006/05/09(火) 23:49:46
simlinkでなくてscicosなんですが、
scicosで作った.cosモデルをC言語もしくはC++のコードに変換して、
自分のmain関数から関数として呼び出したいんですが、
そういうことはできるんでしょうか?
やり方の書いてあるサイトや、そういうこと質問できそうなサイトがありましたら、
ぜひ教えてください。
751デフォルトの名無しさん:2006/05/16(火) 09:17:46
ディスクの空き容量を知るにはどうすればいいですか?
752デフォルトの名無しさん:2006/05/16(火) 23:41:42
大家に聴いてみれば
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
>>755
島GA
758デフォルトの名無しさん:2006/05/22(月) 23:56:34
>>757
「島GA」とは?
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 とやるしかないんでしょうか。
761デフォルトの名無しさん:2006/05/31(水) 22:48:31
b * a + c * (1 - a)
762デフォルトの名無しさん:2006/05/31(水) 23:09:55
>>761
それだと

・b、cが有限でないと(NaN、±Infだと)異常な結果になる
・aがtrueのときもcが(falseのときもbが)実行される

という問題があります。
763デフォルトの名無しさん:2006/06/05(月) 21:55:30
すみません、スレ違いで恐縮なのですが、以前あったGNU R のスレッドのURL
を、どなたか教えていただけませんか?
764デフォルトの名無しさん:2006/06/05(月) 23:29:36
765763: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]

のように定義して、配列位置と最小値を表示させるにはどのように書いたらよいのでしょうか?
特に配列位置を表示させるのに手間取っています。
どなたか教えてくださいませんか?
767デフォルトの名無しさん:2006/06/07(水) 00:31:00
配列位置って何?
768デフォルトの名無しさん:2006/06/07(水) 00:39:46
>>766
最小値のインデックスってこと?

%最小値
min(U)
%インデックス
find(U == min(U))

でどう?
769デフォルトの名無しさん:2006/06/07(水) 00:49:29
>>768
なるほど!!
findをそういう使い方をするんですね。
わかりました。ありがとうございます!!
770デフォルトの名無しさん:2006/06/07(水) 00:50:29
>>768
やってみましたが、納得いく答えが得られました。
ありがとうございます。
771デフォルトの名無しさん:2006/06/07(水) 02:10:48
もう解決できたみたいだけど、
maxやminの戻り値は二つあって、
[value, index] = min(U);
のように最小値の場所を得られるよ。
772デフォルトの名無しさん:2006/06/07(水) 02:36:56
>>771
わざわざありがとうございます。
やっぱり、関数を把握できるようにならないときついかな・・・。
773デフォルトの名無しさん:2006/06/08(木) 20:17:35
ちなみに、>>768>>771は、次のばあい結果が違う。
1. 最小値の要素が複数あるとき
2. 全てNaNのとき
774デフォルトの名無しさん:2006/06/12(月) 18:17:50
実験で撮影した動画(avi)の左上とかに、日付いれたいんですけど
できますか?
775デフォルトの名無しさん:2006/06/12(月) 19:32:02
それはここではないだろう
776774: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本の線をプロットする際、線同士が重なってしまうところは
後からプロットしたほうが表示されますよね。
これを防ぐ方法はないのでしょうか?たとえば少しずらして表示されるとか
どなたかご教授お願いします。
779デフォルトの名無しさん:2006/06/15(木) 20:34:04
>>778
後ろの線を太くする
780デフォルトの名無しさん:2006/06/16(金) 15:31:25
関数を定義するコマンドはどのようにすればよいのかわかりません。

scilabではdeff('')でよかったのですが同じようなことをmatlabでするにはどのようにすればよいのでしょうか?
781778:2006/06/16(金) 22:18:18
>779
ご返信ありがとうございます!
そう言えばそれでいけますね.ありがとうございました.
782デフォルトの名無しさん:2006/06/17(土) 02:25:00
質問させてください。
プログラムを走らせているときにでる警告文を
表示しないようにするにはどうしたらよいのでしょうか?
うっとおしくて困っています。
よろしくお願いします。
783デフォルトの名無しさん:2006/06/17(土) 10:15:45
>>782
warning off

特定の警告を抑制するには
warinig off MATLAB:***
MATLAB:***の部分は、警告が出た後lastwarnで出る
784782: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が返ってきて、判定できません。
どなたかご教示お願いします。
787デフォルトの名無しさん:2006/06/20(火) 18:27:36
isnan(x)とか使えば良いんじゃね?
ってかマニュアル読めば良いんじゃね?
788デフォルトの名無しさん:2006/06/20(火) 20:42:53
a~=a
789786:2006/06/21(水) 11:15:34
>787 788
早速にありがとうございました。

>787
そうですね…。安易に書き込んでしまいました。申し訳ありません。
非常に助かりました。
790ゆーき:2006/06/21(水) 14:31:15
誰か。。。
>777
のこと分かりませんか。。。?orz
791デフォルトの名無しさん:2006/06/21(水) 19:07:26
ググったら一発で出てきたぞ
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〜のところで、ファイル名が逆(アベコベ)に表示されて
いるのも謎です。 よろしくお願いします。
794793:2006/06/21(水) 23:24:46
すみません、上3行は無視してください
795デフォルトの名無しさん:2006/06/22(木) 16:53:12
初心者なんですが、sinc関数をfftして
振幅をデータ数の半分で割っても、うまくいきません。
どうしたらいいでしょうか。
796デフォルトの名無しさん:2006/06/22(木) 20:01:08
>>795
まず目的を書こう
振幅をデータ数の半分で割るという操作にどんな意味があるかは解らないけど
もしもよくある周波数-スペクトルのグラフ等を描くためのデータを作りたいのなら
fft関数の出力をabs関数で絶対値をとるといいよ

fft関数の出力は複素数が含んでいるからね
797デフォルトの名無しさん:2006/06/22(木) 23:07:15
早速ありがとうございます。

周波数ースペクトルのグラフを書こうとしてます。
絶対値とってるんですが、うまくいきません。
参考書などを見て、データインデックスから周波数へのの換算と、fftデータから振幅の換算
を行っても期待する値が振幅では得られません。
798デフォルトの名無しさん:2006/06/22(木) 23:17:04
>>796
意味あるよ
もちっと勉強しようね

>>795
>796の言うとおり質問自体が?
799デフォルトの名無しさん:2006/06/22(木) 23:58:18
>>798

うまく伝えられなくてすいません。

具体的な例を出すと、sinc(t)をfftすると幅1[Hz]、振幅1の矩形スペクトル
になると思うんですが、振幅はそうなりません。
形は矩形になるんですけど・・・。
800デフォルトの名無しさん:2006/06/23(金) 00:36:28
>>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でなければ無問題)。
ど、どなたかぁぁぁぁぁぁ。。。。。ご教授ください。
803デフォルトの名無しさん:2006/06/25(日) 20:22:06
>>802
それはMATLABじゃなくてoctaveだよね。
Octaveスレで聞いてみたら?
804ゆーき:2006/06/25(日) 23:16:52
octaveスレが見当たりません。。。。orz
805デフォルトの名無しさん:2006/06/25(日) 23:27:48
>>804
ないでしょ?

ここでいいんじゃね?
806デフォルトの名無しさん:2006/06/25(日) 23:30:43
ここだとスレ違い
総合スレいったほうがいい。
807デフォルトの名無しさん:2006/06/25(日) 23:42:33
Octaveスレはunix板にあるよ。
808デフォルトの名無しさん:2006/06/25(日) 23:56:33
MacでMatlab使ってる人っていないの?
809ゆーき:2006/06/26(月) 00:02:49
みなさんありがとうございます。
ちなみにmatlabでsubplotを保存するにはどうするのですか?
あと、できれば
>>777 >>792
の質問も見て欲しいです。
お願いします。
810デフォルトの名無しさん:2006/06/26(月) 00:03:56
>>808
ノシ

>>802
gsetでterminalとoutputを予め設定してからplotしてみたら。
811デフォルトの名無しさん:2006/06/26(月) 02:36:55
>>808
Universal 対応してないから使ってない
812ゆーき:2006/06/26(月) 18:38:29
>>810
gset term postscript enhanced;
gset output "a.eps";
replot;

としているのですがterminalの設定方法がわかりません。教えて下さい。
813デフォルトの名無しさん:2006/06/26(月) 19:42:31
>>812
subplotはgnuplotのmultiplotモードを使う。

gnuplotはmultiplotモードではterminalを変更できない。

従ってsubplotコマンドを使用する前に
terminalとoutputを変更すればOKのはず。

これが希望する解決策でないことはわかるけど
エレガントな解決方法はわからない。

814ゆーき:2006/06/26(月) 20:00:48
>>813
とてもありがとうございます。自分はエレガントなど求めておりませんので保存で
きればけっこうです。

ただ1つ問題が。。。


terminalとoutputの変更の仕方が分からない。。。(ハイパー素人のため)

subplotとしてではなくてグラフ1つずつ保存すると言うことでしょうか??
お願いします。
815デフォルトの名無しさん:2006/06/26(月) 20:16:28

gset terminal postscript eps
gset output "test.eps"
subplotとplot色々
gset nomultiplot
gset terminal x11
これでtest.epsに保存できる。
816813=815:2006/06/26(月) 20:39:17
813, 815の回答はOctaveね。MatlabならGUIでできるでしょ。
817ゆーき:2006/06/26(月) 21:20:06
octaveですのでその方法でやってみます。
ほんとにありがとうございました!!!!
818デフォルトの名無しさん:2006/06/27(火) 09:18:28
Matlab 2006bマダー?
819ゆーき:2006/06/27(火) 13:36:05
>>815
保存できました!!!!ありがとうございました!!



。。。が!!!事件です!!!!!グラフがほぼ壊滅状態に陥るほど劣化してしまい使えません。orz
やっとできたと思ったのに。。。

誰か救いの手をさしのべて下さい。
ちなみに
>>777 >>792
も見てもらえると有り難いです。
820813=815:2006/06/27(火) 18:44:33
>>819
私はエスパーではないのでry

octaveについてはUNIX板か数学板の
octaveスレに
行けば詳しい人もいるかも。
821ゆーき:2006/06/27(火) 20:06:04
>>820
ご親切ありがとうございます!!!
頑張ってみます!!
822デフォルトの名無しさん:2006/06/29(木) 19:27:48
                  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
みたいな感じで記述したらどうかなーと思ってたんですが
値が後者に固定されてしまい全く出来ません

助けてください><;
823デフォルトの名無しさん:2006/06/29(木) 20:29:45
「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を関数として使ってください
みたいなことがエラーで出ます。
初心者ですいません。
教えてください。
825デフォルトの名無しさん:2006/07/01(土) 00:01:26
ハニング窓関数はhann
826デフォルトの名無しさん:2006/07/04(火) 23:30:18
hannで大丈夫でしたー。
でも、窓関数関数自体のスペクトルがうまく出力できないー。
827matlabとC言語について:2006/07/06(木) 14:26:08
matlabからC言語で書いた関数をリンクさせたり参照したりすることは可能でしょうか?

フリーのscilabはlink可能だったのですが研究でmatlabを用いて数値計算をしたいと考えています.
よろしくお願いします.
828デフォルトの名無しさん:2006/07/06(木) 15:09:45
できるよ。mexってのを調べてみるといい。
829ゆーき:2006/07/07(金) 11:43:23
どなたかc-splineのcsapeを使って曲線を描くときのcsape(x,y,conds,valconds)の
valcondsにいれるべき値とはどういったものかお教えください。お願いします。
830デフォルトの名無しさん:2006/07/07(金) 12:41:50
すみません。質問です。
OBB(Oriented Bounding Box)で、物体頂点群から、
主成分分析をもちい(共分散行列つくって固有ベクトル)、
3つの軸を見つけることができたのですが、

直方体の物体に対する第一成分の軸が、最長の対角線上
になってしまいます。こうなるとAABBより悪い。。。

あとで考えてみると、確かに普通に適用するとそうなるのは
わかったのですが、外国の論文みてると、どうやらこれを回避
する方法があるらしいのです。
ただ、英語がよくわからないので、もう一歩が読みきれません。
あとなにかのアイデアひとつと思うですが、
ポイントを教えてください。
831デフォルトの名無しさん:2006/07/07(金) 15:43:26
>>830
スレ違い。あとマルチいくない
832デフォルトの名無しさん:2006/07/07(金) 16:08:27
>>831
すみません。撤回します。しかし、よくマルチって
わかるなぁ。全部マイナーなスレにのっけたのに。
833デフォルトの名無しさん:2006/07/07(金) 16:12:17
>>832
検出するソフトがある
834デフォルトの名無しさん:2006/07/08(土) 13:33:34
matlabで音声を再生しながら
プログレスバーを移動したり、再生部分の時刻を表示する
ことは可能ですか?
835デフォルトの名無しさん:2006/07/08(土) 13:50:24
>>833
そのまでやるのか・・・キモ
836デフォルトの名無しさん:2006/07/08(土) 14:18:46
        ∩___∩
. \     | ノ      ヽ
   \  /  ●   ● |
     \|    ( _●_)  ミ 
      彡、   |∪| ,/..
       ヽ   ヽ丿/  /⌒|
       / \__ノ゙_/  /  =====
      〈          _ノ  ====
       \ \_    \
        \___)     \   ======   (´⌒
           \   ___ \__  (´⌒;;(´⌒;;
             \___)___)(´;;⌒  (´⌒;;  ズザザザ
837デフォルトの名無しさん:2006/07/08(土) 16:49:02
IIRフィルタ(2次)で、周波数を山形波形で出力させたいのですが、関数をどのようにしたらいいのでしょうか?
838デフォルトの名無しさん:2006/07/10(月) 08:56:09
周波数を山形波形で出力させられるように係数を決める。
839デフォルトの名無しさん:2006/07/14(金) 23:41:48
2006aで何が変わったの?
840デフォルトの名無しさん:2006/07/15(土) 09:32:37
バージョンが変わった。
841デフォルトの名無しさん:2006/07/15(土) 15:05:24
なるほろけっと
842デフォルトの名無しさん:2006/07/16(日) 14:09:33
FFTした後の振幅って、その中のピークで規格化するのが一般的なんですか?

実際のパワースペクトル密度を得たいときはどうすればいいんですか?

勉強不足ですいません。よろしくおねがいします。
843デフォルトの名無しさん:2006/07/16(日) 23:48:21
PERIODOGRAMあたりのドキュメントを読むべし。
844デフォルトの名無しさん:2006/07/17(月) 20:56:13
ありがとうございます。
やってみます。
845デフォルトの名無しさん:2006/07/19(水) 02:29:48
periodogramじゃなくて、FFTしたものにサンプルリング周期をかけてやることで
連続時間フーリエと同じ結果になりました。
846デフォルトの名無しさん:2006/07/21(金) 06:14:31
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で調べても難しいことばっか言っててわかんなかったです…
こんな私にどなたかご教授ください〜
848デフォルトの名無しさん:2006/07/21(金) 18:23:32
むりむり。
849デフォルトの名無しさん:2006/07/21(金) 21:37:09
>>847
氏ね
850デフォルトの名無しさん:2006/07/21(金) 22:52:46
>>846
うまくいくかわかりませんが,IC(初期値を設定するブロック)を
ConstantとS-funの間に挿入してはどうでしょうか。
http://www.cybernet.co.jp/matlab/support/manual/r14/toolbox/simulink/slref/ic.shtml



>>847
つ ささやかなヒント
http://www.cybernet.co.jp/matlab/support/manual/r14/toolbox/matlab/matlab_prog/ch_impo6.shtml#173379
851デフォルトの名無しさん:2006/07/21(金) 23:44:32
>>847
皆に酷評されてるけど それくらい自分で努力せにゃあかんよ
最低だぞー
852847: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のグラフにプロットするにはどういうふうにしたらいいんでしょうか。
バカかと思われてもしかたありませんが解決策を教えてください…
853デフォルトの名無しさん:2006/07/24(月) 12:06:02
はぁ?対応してるんだったら
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のグラフにプロットがしたいんです
855デフォルトの名無しさん:2006/07/25(火) 22:59:11
>>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かな?
857デフォルトの名無しさん:2006/07/27(木) 16:36:23
matlabで年間の利率5%で100万を10年預けたらいくらになるかって
プログラムどうやって作るの?
858デフォルトの名無しさん:2006/07/27(木) 20:24:42
>>857
^
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);

861デフォルトの名無しさん:2006/07/28(金) 02:42:56
>>860
なぜ matlab スレ?
862デフォルトの名無しさん:2006/07/28(金) 02:44:55
>>860
マルチ&板違い
死ね
863デフォルトの名無しさん:2006/07/28(金) 08:45:14
>857
1000000 * 1.05^10
864デフォルトの名無しさん:2006/07/28(金) 10:31:20
いまどき5%の利回りってありえないんだけど
865デフォルトの名無しさん:2006/07/28(金) 15:31:48
1000000 * 1.0025^10
866デフォルトの名無しさん :2006/07/28(金) 23:12:24
>>859
悩み意味不明。
867デフォルトの名無しさん:2006/07/29(土) 15:21:30
ある無限ループの処理を実行させてて、ボタンを押したら
止まるというプログラムを書きたいのですが、
その場合、どの部分でも止めたらいいわけでなく、排他制御というか
ある箇所までは絶対に処理を行って欲しいのですが、
このようなプログラムはMATLABで可能ですか?
868デフォルトの名無しさん:2006/07/30(日) 05:06:17
>>867
ボタン押したときにフラグ立てて
終了したいところで判定すればいいんじゃない?
869デフォルトの名無しさん:2006/07/30(日) 05:09:17
わかった。
870859:2006/07/30(日) 13:20:36
>>866
すみません、元の信号と、フィルタ処理をした後の2種類の信号があって、
周波数を横軸にしたmagnitudeのグラフを2種類並べたfigure1と、phaseのグラフを2種類並べたfigure2を別々に表示させたいんです。
1つの信号の周波数特性自体はfreq関数で表示できるのですが、上記のようにして利得と位相どうしを比較するfigureを作りたいです。
871デフォルトの名無しさん:2006/07/30(日) 14:38:02
>>870
hold と subplot の組合せで
872859:2006/07/31(月) 19:05:09
レスありがとうございます。
holdだと重ねて表示されてしまいますね、縦に並べて表示したかったんですが…。
でもありがとうございました!
873デフォルトの名無しさん:2006/08/01(火) 00:29:36
subplotも教えてもらってるじゃん
874デフォルトの名無しさん:2006/08/01(火) 14:53:42
matlabでRのパッケージを使うことはできるでしょうか?
MATLAB R-linkでRの関数は使えるようになったんですが。
875デフォルトの名無しさん:2006/08/01(火) 15:07:58
epsで保存したときに、画面上で見た状態と違う形(文字の場所など)で保存されるのは、仕様ですか?
876デフォルトの名無しさん:2006/08/01(火) 16:56:55
>875
仕様です。
画面表示と印刷(含EPS)では違う描画ルーチンを使っているようで、
グラフのグリッド幅なんかも違ってきますよね。
877デフォルトの名無しさん:2006/08/02(水) 20:49:02
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ル−プは怖っ。
879デフォルトの名無しさん:2006/08/08(火) 12:41:37
正規のライセンスじゃないとそうなります。
880デフォルトの名無しさん:2006/08/08(火) 20:22:38
嘘は言ってないが
正規のライセンスでもそうな(ry
881デフォルトの名無しさん :2006/08/08(火) 21:07:05
ライセンスの問題じゃあない。

for...endはBigSizeのデ−タ処理には向かない。
PCのパフォ−マンスで改善はされるけど。
使わないのが賢明。
工夫。工夫。 さ。
882デフォルトの名無しさん:2006/08/11(金) 23:38:16
mexの作りかたの初心者向け解説を教えとくれ。とりあえずとり昔のcプログラムをmex化できればよい
883デフォルトの名無しさん:2006/08/15(火) 23:29:00
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です。
886デフォルトの名無しさん:2006/08/17(木) 21:52:46
887デフォルトの名無しさん:2006/08/29(火) 15:04:23
Matlab初心者ですが。
Mファイルを人からもらってそのソースコードを見たいのですが、Editorで開いても文字化けして見ることができません。誰か教えて下さい。よろしくお願いします。
888デフォルトの名無しさん:2006/08/29(火) 19:51:52
ノートパッドで見れますん
889デフォルトの名無しさん:2006/08/29(火) 21:02:58
mccで作成したスタンドアロン実行ファイル実行時に展開される
*.mファイルは、暗号化されている。
890デフォルトの名無しさん:2006/09/02(土) 16:49:54
伝達関数からIIRフィルターの係数を直接求める方法知りませんか?

(s^2 + Xs + 1)/(s^2 + Ys + 1)みたいな伝達関数から

B=[なんたらかんたら]
A=[うんたらちんたらら]

みたいに一発でもとめたいんですけど。


891デフォルトの名無しさん:2006/09/02(土) 22:45:32
>>890
マルチポスト乙
892デフォルトの名無しさん:2006/09/03(日) 01:01:00
MATLABで演算子の定義ってできるんでしょうか。
例えばインクリメントの++をMATLABでも使えるようにするとか…
すでに存在するの2項演算子の「+」ならplus関数をオーバーライドすればいいみたいですが、
存在しない演算子を新たに定義することは可能なんでしょうか。
893デフォルトの名無しさん:2006/09/03(日) 18:56:03
>>891
答えられない香具師は書かなくていいです。わかりやすく書ける人だけ書いてください。
894デフォルトの名無しさん:2006/09/04(月) 01:13:17
sinc関数に窓関数がかかった波形の面積を積分して求めたいんですが、
何かいい方法はないでしょうか?
よろしくお願いします。
895ららら:2006/09/04(月) 01:26:44
>>890
そのまま分子分母の係数がフィルタ係数になるはずだが。
896デフォルトの名無しさん:2006/09/04(月) 01:38:23
>>893
お前自身も「答えられない香具師」じゃないか。ここに書かなくていいです。
897デフォルトの名無しさん:2006/09/04(月) 01:48:30
>>894
ヒント:
ttp://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/matlab/math/funfun14.shtml#381254

2重積分のところも読むといいかも。
898デフォルトの名無しさん:2006/09/04(月) 04:50:07
>>897
ありがとうございます。

でも、なんで2重なんですか??
899デフォルトの名無しさん:2006/09/04(月) 14:26:29
MATLABは医用ではどんなことに使われているんですか?
900デフォルトの名無しさん:2006/09/04(月) 22:02:32
>>898
関数の作り方が書いてある
901デフォルトの名無しさん:2006/09/05(火) 00:34:29
>>900
なんとかできました。
あと、数式じゃなくてfftして得られたグラフやデータを積分することもできるんでしょうか?
902デフォルトの名無しさん:2006/09/05(火) 01:32:48
式ではなくてデータを積分するには,数値積分という方法があります。

台形公式、ガウス積分,シンプソン法なんかでググれば出てくると思います。
903デフォルトの名無しさん:2006/09/05(火) 02:33:09
quadを使ってシンプソンの求積法で関数を積分するとき、
パラメータの刻み幅はどこで決まるんですか?
904デフォルトの名無しさん:2006/09/05(火) 02:34:47
quadを使ってシンプソンの求積法で関数を積分するとき、
パラメータの刻み幅はどこで決まるんですか?
905デフォルトの名無しさん:2006/09/05(火) 03:47:37
quadは刻み幅の指定は出来ないかと。

刻み幅を指定して積分を行いたいなら,自分で積分のルーチンを作るしかないと思います。
906デフォルトの名無しさん:2006/09/05(火) 03:58:13
quadはどれくらいで計算してるんですか?
907デフォルトの名無しさん:2006/09/05(火) 04:01:06
ブラックボックスだから何とも・・・
908デフォルトの名無しさん:2006/09/05(火) 22:57:02
MATLABってなに?
909デフォルトの名無しさん:2006/09/07(木) 12:30:37
910デフォルトの名無しさん:2006/09/09(土) 03:07:25
matlabの関数として窓関数はどれが定義されてますか?
911デフォルトの名無しさん:2006/09/09(土) 09:31:49
意味は自分で調べて
@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.
912デフォルトの名無しさん:2006/09/11(月) 22:58:59
>>911
orz...。
913デフォルトの名無しさん:2006/09/12(火) 00:44:51
>>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 . . .

--------------------------------------------------------------------
のようなメッセージが出てきて起動できません。
何が原因なのでしょうか?
よろしくお願いします。
915デフォルトの名無しさん:2006/09/12(火) 22:54:32
>>914
ライセンス形態とかの情報は?
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'だと輪郭が太くなるだけなので困っています.
フィギュアプロパティでフォントサイズを変更すれば,できることは
できるのですが,プログラムで書きたいのです.
どなたかご教示をお願いいたします

921デフォルトの名無しさん:2006/09/28(木) 00:21:50
>>920
'MarkseSize'
922デフォルトの名無しさん:2006/09/28(木) 00:22:43
タイプミス
'MarkerSize'
923920:2006/09/28(木) 16:58:35
>922様
ありがとうございました!助かりました。
924デフォルトの名無しさん:2006/10/04(水) 07:22:43
印刷する際に、用紙の設定を標準でletterにする方法を教えてください
925デフォルトの名無しさん:2006/10/04(水) 12:27:32
それはプリンタードライバの設定の問題で、MATLABとは関係ないんじゃないか?
926デフォルトの名無しさん:2006/10/04(水) 22:53:06
質問させてください
matlabでポリガンマ関数って扱えますか?
よろしくお願いします
927926: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を定義することってできますか?
930デフォルトの名無しさん:2006/10/05(木) 15:34:00
>>929
できますよ。
一行目とそれより下に二つ以上書いて、試してみて。

Linuxで学校のmatlabを使ってるんですけど、
Signal Processing Toolboxのライセンスがあるとか、って
どうやって確かめられるんでしょうか。
学校に聞くのはなしで。
931デフォルトの名無しさん:2006/10/05(木) 15:34:33
>>929
一行目とそれより下、合わせて2つ以上です。ごめん
932デフォルトの名無しさん:2006/10/05(木) 16:38:53
>>929
普通にsmoothingフィルタかけてみたら?
933デフォルトの名無しさん:2006/10/05(木) 22:43:23
>>930
HELPでSignal Processing ToolboxのHELPが出れば、めでたしめでたしだー。
934929:2006/10/05(木) 23:13:46
>>930
どうもありがとうございました!
935デフォルトの名無しさん:2006/10/05(木) 23:49:01
>>933
そうなのか?
忘れたが、verだったかversionだったかで出るのではないか?
そのものズバリのlicenseなんかもあったような…
936デフォルトの名無しさん:2006/10/06(金) 12:04:21
>>930
license.datの中身にどのツールボックスが入ってたか書いてる気がする。
INCREMENT Signal_Toolbox
とかだったかな?記憶がはっきりしない。
937困ってます:2006/10/07(土) 08:32:53
くだらないことをきいてすみません、
自分のMATLABでfevalを使用すると

>feval(f,2)
??? 入力引数 'x' が定義されていません.

と返ってきます。x=2じゃないのですか?
それでいつもfevalを回避してプログラム作る羽目になっているのですが
これは一体何が原因かわかりません。どなたかアドバイスください。
938デフォルトの名無しさん:2006/10/07(土) 14:55:48
feval('abs',-2)
でうごいたけど?
939困ってます:2006/10/07(土) 23:34:10
>938
レスありがとうございます。
>feval(f,2) ではなく 
>feval('f',2) としなきゃいけなかったんですね。

馬鹿らしいけどマニュアルにはfeval(functionname, x)と書いているのが
多くて・・・。多謝です!

940デフォルトの名無しさん:2006/10/08(日) 01:36:57
>>939
多くの例はたとえば
f = 'abs';
feval(f, 2);
という状況を意味しているのでしょう
941困ってます:2006/10/08(日) 02:13:21
なるほど、納得がいきました。
難しいプログラムも結構くだらないところでつまずいているものですね。
というか自分がどじなだけだろうけど。
ご示唆ありがとうございました。
942デフォルトの名無しさん:2006/10/09(月) 23:27:34
もしかして、とあるtoolboxをインストールしてあるパソコンのtoolboxフォルダを単に他のパソコンにコピーしただけでは
そのtoolboxは使えるようにならない?
943デフォルトの名無しさん:2006/10/10(火) 08:46:51
>>942
なるわけない。
ライセンス(License.dat)でインストールしているtoolboxは管理されてる。
944デフォルトの名無しさん:2006/10/11(水) 18:14:23
日本語でおk
945デフォルトの名無しさん:2006/10/12(木) 01:05:40
license.datっていうファイルに使えるtoolboxが記述されてるんだよ
946デフォルトの名無しさん:2006/10/12(木) 16:32:22
違う。ライセンス(License.dat)でインストールするのだよ。
947デフォルトの名無しさん:2006/10/15(日) 16:20:31
MATLABはOctaveとどう違うんだろう
948デフォルトの名無しさん:2006/10/16(月) 13:14:58
なまえがちがうでそ
949デフォルトの名無しさん:2006/10/16(月) 20:21:29
値段も違う
950デフォルトの名無しさん:2006/10/19(木) 01:14:28
plotyy(x1,y1,x2,y2)
で描いたx1軸とx2軸の
両方を日付目盛りにする
方法を教えて下さい
お願いします
951デフォルトの名無しさん:2006/10/21(土) 01:18:52
組み込み関数を使ったときに,
引数のサイズがでかいとかいわれるんだけど…
なんじゃそりゃー!
952デフォルトの名無しさん:2006/10/21(土) 01:57:14
なぜそこでその関数名やら、どのように使ったのかを書かないのか。
日記ならご自分ブログでどうぞ
953デフォルトの名無しさん:2006/10/21(土) 01:59:10
んじゃ書いてみます.
fminsearchの初期値つまり求めたい変数に数百×数百(千だったかも)の行列を突っ込んだ.
954デフォルトの名無しさん:2006/10/21(土) 12:25:51
>>953
試してないけど fminsearch なら確かに妥当っぽい動作な気もする。
初期値からちょっと変えて計算、ちょっと変えて計算ってやるんだろうし。
955デフォルトの名無しさん:2006/10/21(土) 15:42:27
そういう関数もあるんだね.
optimization toolbox持ってないとダルイのね・・・
956デフォルトの名無しさん:2006/10/21(土) 15:59:15
最適化Tool boxほしいなぁ
957デフォルトの名無しさん:2006/10/22(日) 20:16:58
matlabにsleepに相当する機能はありませんか?
octaveだとあるのだが。
UNIX版matlabだと system('sleep 10'); なんてやってますが、
windows版でできる方法はないでしょうか。
958デフォルトの名無しさん:2006/10/23(月) 02:58:58
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までにしたい・・など・・。
962デフォルトの名無しさん:2006/10/29(日) 02:54:56
0 から pi までの(pi は含まない) pi/4 間隔のベクトル(数列)を楽に作るにはどうしたらいいでしょう?
やりたいことは
0:pi/4:pi
みたいなことなのですが、pi を含んでしまうもので。
963デフォルトの名無しさん:2006/10/29(日) 03:14:55
0:pi/4:pi-pi/4

じゃ駄目?
964デフォルトの名無しさん:2006/10/29(日) 04:57:25
うーん、本当は <= を < にするような方法を期待していたのですが、そういうもんでしょうか。
ありがとう
965デフォルトの名無しさん:2006/10/29(日) 22:43:30
行列データを可視化させたいのですが,
非負実数は黒く
負実数は白く
みたいなイメージのだしかたってありますか?
966デフォルトの名無しさん:2006/10/29(日) 23:05:52
俺はバカだから訳わかんね。こういう事かな。

a=rand(1,10)-0.5; %正負のある行列を用意
plot(find(a>0),a(find(a>0)),'*k',find(a>0),a(find(a<=0)),'*w') %正の数だったら黒く、負の数だったら白く*でプロット
967デフォルトの名無しさん:2006/10/29(日) 23:08:25
plot(find(a>0),a(find(a>0)),'*k',find(a<=0),a(find(a<=0)),'*w')
に訂正。ほんとにバカだ。ハハハ
968デフォルトの名無しさん:2006/10/29(日) 23:16:31
plotよりimagescとかimshowみたいな表示はないかしら
969デフォルトの名無しさん:2006/10/29(日) 23:19:24
>>966,967
にお礼言うのを忘れてた.ありがとう.
970デフォルトの名無しさん:2006/10/30(月) 07:54:48
動画のキャプチャー画像をまとめて処理しようとしてるんですが、
imreadすると自動的に縦×横×RGBの3次元配列になってしまいます。
これに1次元さらに加えて、それが何枚目の画像かを分かるようにするにはどうすればいいでしょうか?
971デフォルトの名無しさん:2006/10/30(月) 12:04:50
相関行列を「corrcoef」で求めた際、「警告: ゼロ割です」と出ます。
そのままその固有ベクトルを求めようとすると、
「??? エラー: ==> eig
EIG への入力は、NaN または Inf を含まなければなりません。」
と出ます。
どうしたらエラーを出さずに固有ベクトルを求めることができるのでしょうか?
972デフォルトの名無しさん:2006/10/30(月) 23:03:31
>>965
Aをその行列として,
imagesc(A, [min(A(:), max(A(:)))]);
colormap(gray);
973デフォルトの名無しさん:2006/10/30(月) 23:04:40
imagesc(A, [min(A(:), max(A(:)))]);

magesc(A, [min(A(:)), max(A(:))]);
に訂正
974デフォルトの名無しさん:2006/10/31(火) 09:29:26
>>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が含まれている公算が大だ。
回避する方法としては、入力行列に影響が出ない程度微細なノイズを
加えることが考えられる。詳しいデータ無いからこれ以上はわかんね。
975デフォルトの名無しさん:2006/10/31(火) 22:05:18
MATLAB6.5で

a='method'

と打ってみてびびった。
976デフォルトの名無しさん:2006/11/01(水) 18:24:37
matlabで%を使うとその行はコメントアウトになり、プログラムは
読み込まないと思います。

・・その%の使い方ではなく、文字として「%」を表示させたいのですが、
どうしたいいのでしょうか。。。
977デフォルトの名無しさん:2006/11/03(金) 11:04:36
%% とか ¥% とかじゃないの?
978デフォルトの名無しさん:2006/11/03(金) 23:26:19
>977
ありがとうございます。はい、¥%とか使ってしてみたんですが、うまく表示されなくて。。。

title('5%');
の場合はできるんですが、

title(sprintf('%d \%',j*5),'FontSize',12);
のように使うとできないんです・・・。

使っているVers.は7.0.1なんですが。。。

979デフォルトの名無しさん:2006/11/05(日) 12:34:40
4 8 16 32 64
みたいな等比数列を作りたいのですが、
2:3:19
的に楽にできる方法ってありますか?
980デフォルトの名無しさん:2006/11/05(日) 14:13:40
2 ^ (1:10) とかで。
981デフォルトの名無しさん:2006/11/05(日) 14:14:17
ごめん、ピリオド抜けてた。
2 .^ (1:10)
982977:2006/11/05(日) 14:15:07
>978
だから「%%」だってば。
983デフォルトの名無しさん:2006/11/06(月) 02:26:42
>981
なるほろけっと。とんくす
984デフォルトの名無しさん:2006/11/06(月) 02:27:39
matlab で開いているディレクトリをエクスプローラで開く、ってできないですかね?
もちろん  win の話です。
985デフォルトの名無しさん:2006/11/06(月) 02:28:16
あ、もちろん matlab からエクスプローラ起動して、って意味です。
986デフォルトの名無しさん:2006/11/06(月) 02:39:24
eval(['!explorer "' pwd '"']);

とかどう?今手元にMatlabないから試してないけど。
987デフォルトの名無しさん:2006/11/06(月) 04:37:54
>>986
ほぇー。そんな手があるとは。動いた。ありがとう。
988デフォルトの名無しさん:2006/11/06(月) 04:40:25
あ、
!explorer .
でできた。なんにしてもありがとう。
989デフォルトの名無しさん:2006/11/07(火) 00:36:06
公共交通機関に関する研究を行ってる者なのですが、
先日MATLABを使い始めまして
MATLABでどうにか公共交通機関のシミュレーションを行いたいと思っています。
線の上で四角が移動するというようなプログラムを作りたいのですがどうすればよろしいでしょうか?
よろしくお願いします。
990デフォルトの名無しさん:2006/11/08(水) 02:20:06
( ゚д゚) 、ペッ
991デフォルトの名無しさん:2006/11/08(水) 14:06:18
MATLABで筆跡認識のプログラムを作りたいと思っています。
先日MATLABを使い始めて、取り込んだ筆跡データをSOMでマップ化(分類)することには成功したのですが・・・
この先、どうやって認識させればいいのでしょうか?
誰か、アドバイスを宜しくお願いします。
992デフォルトの名無しさん:2006/11/08(水) 15:52:52
ほえ?学習できたんだから、同じように新データにたいして classification できるでしょ?
ってか matlab スレ。
993デフォルトの名無しさん:2006/11/08(水) 16:07:59
>>922
レスありがとうござます。
どこで聞けばいいのか分からなかったので、すいませんでした。
classificationってなんでしょうか?
あと、認識→認証の間違いでした。
994デフォルトの名無しさん:2006/11/08(水) 22:42:48
>>993
認識、認証は対した問題じゃないけど
Classification(分類)とClustering(クラスタリング)はかなり意味が違うこの分野の用語
>>991 でマップ化(分類)といっているけど、SOM は Unsupervised(教師なし)のはずで、
たぶん教師なしで、”クラスタリング”したんじゃないかと思う。
そこを説明なしで区別したかったので、分類という言葉を使いたくなかった。
995デフォルトの名無しさん:2006/11/08(水) 23:28:50
>>944
レスありがとうございます。
用語が全然分かってませんでした。
あと、質問文が間違ってました。
筆跡データをMATLABのSOM TOOLBOXというものを使い、クラスタリングしてマップ化したものから、
新たに筆跡データに入力して一番類似しているデータを探し出すのはどうしたらいいのでしょうか?
996デフォルトの名無しさん:2006/11/09(木) 02:56:37
ほえ?学習できたんだから、同じように新データにたいして classification できるでしょ?
ってか matlab スレ。
997デフォルトの名無しさん:2006/11/09(木) 02:57:20
ヒント:somtoolbox の autolabel
998デフォルトの名無しさん:2006/11/09(木) 10:19:42
(・∀・)
999デフォルトの名無しさん:2006/11/09(木) 12:06:53
(´ー`)y━・~~
1000(´・д・`)DOn'03 ◇JcpHA18Tqs:2006/11/09(木) 12:07:39
日テレはルパンにひどいことをしたよね(´・ω・`)
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。