MATLABプログラミング 質問箱 その1
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
NGNGhttp://www.cybernet.co.jp/matlab/
MATLAB 本家
http://www.mathworks.com/
Yahoo MATLAB
http://dir.yahoo.co.jp/Science/Mathematics/Software/MATLAB/
MATLAB入門
http://feedback.mech.fukui-u.ac.jp/matlab/matlab0.htm
MATLAB チュートリアル
http://www-isys.eei.metro-u.ac.jp/~sho/pub/ttmatlab/Index.html
0809ゆーき
2006/06/26(月) 00:02:49ちなみにmatlabでsubplotを保存するにはどうするのですか?
あと、できれば
>>777 >>792
の質問も見て欲しいです。
お願いします。
0810デフォルトの名無しさん
2006/06/26(月) 00:03:56ノシ
>>802
gsetでterminalとoutputを予め設定してからplotしてみたら。
0811デフォルトの名無しさん
2006/06/26(月) 02:36:55Universal 対応してないから使ってない
0812ゆーき
2006/06/26(月) 18:38:29gset term postscript enhanced;
gset output "a.eps";
replot;
としているのですがterminalの設定方法がわかりません。教えて下さい。
0813デフォルトの名無しさん
2006/06/26(月) 19:42:31subplotはgnuplotのmultiplotモードを使う。
gnuplotはmultiplotモードではterminalを変更できない。
従ってsubplotコマンドを使用する前に
terminalとoutputを変更すればOKのはず。
これが希望する解決策でないことはわかるけど
エレガントな解決方法はわからない。
0814ゆーき
2006/06/26(月) 20:00:48とてもありがとうございます。自分はエレガントなど求めておりませんので保存で
きればけっこうです。
ただ1つ問題が。。。
terminalとoutputの変更の仕方が分からない。。。(ハイパー素人のため)
subplotとしてではなくてグラフ1つずつ保存すると言うことでしょうか??
お願いします。
0815デフォルトの名無しさん
2006/06/26(月) 20:16:28gset terminal postscript eps
gset output "test.eps"
subplotとplot色々
gset nomultiplot
gset terminal x11
これでtest.epsに保存できる。
0816813=815
2006/06/26(月) 20:39:170817ゆーき
2006/06/26(月) 21:20:06ほんとにありがとうございました!!!!
0818デフォルトの名無しさん
2006/06/27(火) 09:18:280819ゆーき
2006/06/27(火) 13:36:05保存できました!!!!ありがとうございました!!
。。。が!!!事件です!!!!!グラフがほぼ壊滅状態に陥るほど劣化してしまい使えません。orz
やっとできたと思ったのに。。。
誰か救いの手をさしのべて下さい。
ちなみに
>>777 >>792
も見てもらえると有り難いです。
0820813=815
2006/06/27(火) 18:44:33私はエスパーではないのでry
octaveについてはUNIX板か数学板の
octaveスレに
行けば詳しい人もいるかも。
0821ゆーき
2006/06/27(火) 20:06:04ご親切ありがとうございます!!!
頑張ってみます!!
0822デフォルトの名無しさん
2006/06/29(木) 19:27:48/|
___/ | ____ 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
みたいな感じで記述したらどうかなーと思ってたんですが
値が後者に固定されてしまい全く出来ません
助けてください><;
0823デフォルトの名無しさん
2006/06/29(木) 20:29:45「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;
みたいに書くべし。
0824デフォルトの名無しさん
2006/06/29(木) 22:34:00hamming(sample_point)
は使えるんですけど
hanning(sample_point)
だとscript hanningを関数として使ってください
みたいなことがエラーで出ます。
初心者ですいません。
教えてください。
0825デフォルトの名無しさん
2006/07/01(土) 00:01:260826デフォルトの名無しさん
2006/07/04(火) 23:30:18でも、窓関数関数自体のスペクトルがうまく出力できないー。
0827matlabとC言語について
2006/07/06(木) 14:26:08フリーのscilabはlink可能だったのですが研究でmatlabを用いて数値計算をしたいと考えています.
よろしくお願いします.
0828デフォルトの名無しさん
2006/07/06(木) 15:09:450829ゆーき
2006/07/07(金) 11:43:23valcondsにいれるべき値とはどういったものかお教えください。お願いします。
0830デフォルトの名無しさん
2006/07/07(金) 12:41:50OBB(Oriented Bounding Box)で、物体頂点群から、
主成分分析をもちい(共分散行列つくって固有ベクトル)、
3つの軸を見つけることができたのですが、
直方体の物体に対する第一成分の軸が、最長の対角線上
になってしまいます。こうなるとAABBより悪い。。。
あとで考えてみると、確かに普通に適用するとそうなるのは
わかったのですが、外国の論文みてると、どうやらこれを回避
する方法があるらしいのです。
ただ、英語がよくわからないので、もう一歩が読みきれません。
あとなにかのアイデアひとつと思うですが、
ポイントを教えてください。
0831デフォルトの名無しさん
2006/07/07(金) 15:43:26スレ違い。あとマルチいくない
0832デフォルトの名無しさん
2006/07/07(金) 16:08:27すみません。撤回します。しかし、よくマルチって
わかるなぁ。全部マイナーなスレにのっけたのに。
0833デフォルトの名無しさん
2006/07/07(金) 16:12:17検出するソフトがある
0834デフォルトの名無しさん
2006/07/08(土) 13:33:34プログレスバーを移動したり、再生部分の時刻を表示する
ことは可能ですか?
0835デフォルトの名無しさん
2006/07/08(土) 13:50:24そのまでやるのか・・・キモ
0836デフォルトの名無しさん
2006/07/08(土) 14:18:46. \ | ノ ヽ
\ / ● ● |
\| ( _●_) ミ
彡、 |∪| ,/..
ヽ ヽ丿/ /⌒|
/ \__ノ゙_/ / =====
〈 _ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
0837デフォルトの名無しさん
2006/07/08(土) 16:49:020838デフォルトの名無しさん
2006/07/10(月) 08:56:090839デフォルトの名無しさん
2006/07/14(金) 23:41:480840デフォルトの名無しさん
2006/07/15(土) 09:32:370841デフォルトの名無しさん
2006/07/15(土) 15:05:240842デフォルトの名無しさん
2006/07/16(日) 14:09:33実際のパワースペクトル密度を得たいときはどうすればいいんですか?
勉強不足ですいません。よろしくおねがいします。
0843デフォルトの名無しさん
2006/07/16(日) 23:48:210844デフォルトの名無しさん
2006/07/17(月) 20:56:13やってみます。
0845デフォルトの名無しさん
2006/07/19(水) 02:29:48連続時間フーリエと同じ結果になりました。
0846デフォルトの名無しさん
2006/07/21(金) 06:14:31●モデル:
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に入力しています。
0847デフォルトの名無しさん
2006/07/21(金) 15:32:08今回、エクセルのデータ(xとyの値が50個ずつくらい)をMATLABでプロットしたいんですが、
データの読み込み方もそれをプロットするやり方もわかりません><
webで調べても難しいことばっか言っててわかんなかったです…
こんな私にどなたかご教授ください〜
0848デフォルトの名無しさん
2006/07/21(金) 18:23:320849デフォルトの名無しさん
2006/07/21(金) 21:37:09氏ね
0850デフォルトの名無しさん
2006/07/21(金) 22:52:46うまくいくかわかりませんが,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
0851デフォルトの名無しさん
2006/07/21(金) 23:44:32皆に酷評されてるけど それくらい自分で努力せにゃあかんよ
最低だぞー
0852847
2006/07/24(月) 11:46:38さっぱり何を言っているのか泣
今回はしかたなく、エクセルのデータをテキストデータにして、
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のグラフにプロットするにはどういうふうにしたらいいんでしょうか。
バカかと思われてもしかたありませんが解決策を教えてください…
0853デフォルトの名無しさん
2006/07/24(月) 12:06:02x1 y1
x2 y2
x3 y3
.
.
xn yn
じゃねーの?
0854デフォルトの名無しさん
2006/07/24(月) 12:13:58x1とx2の間が等間隔なんですが値がなく、それとy1〜ynが対応してるんです…
XYDATA=(X++(Y..Y))
っていう…。それをきちんとxとyのグラフにプロットがしたいんです
0855デフォルトの名無しさん
2006/07/25(火) 22:59:11回答ありがとうございます。私が作成したMファイルに問題があったようで、
直接フィードスルーがfalseになったままだったのが原因でした。
trueにしたところ無事t=0で入力端子からの値が確定しています。
ただ、t=0の一回のみ実行のファンクションInitialConditionsやStartでは
入力端子からの読み込みはできないようで、結局Outputsファンクションで
block.CurrentTime==0のときだけ入力値から初期化するようにせざるを得
ないようです。Startで入力値で初期化できたらスマートだったのですが。
なお、ICはt=0のときのみ値を変えたい場合に利用できるようで、ひとつ勉
強になりました。
0856デフォルトの名無しさん
2006/07/26(水) 23:30:18xnにones()を掛ければ、ynと同じサイズ になるよw
あとは行ごとに列ベクトルに変換して、 cat()で Endかな?
0857デフォルトの名無しさん
2006/07/27(木) 16:36:23プログラムどうやって作るの?
0858デフォルトの名無しさん
2006/07/27(木) 20:24:42^
0859デフォルトの名無しさん
2006/07/28(金) 01:49:52subplotで別のウィンドウに表示するには
どうすればいいか教えてください…
0860ど素人
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);
0861デフォルトの名無しさん
2006/07/28(金) 02:42:56なぜ matlab スレ?
0862デフォルトの名無しさん
2006/07/28(金) 02:44:55マルチ&板違い
死ね
0863デフォルトの名無しさん
2006/07/28(金) 08:45:141000000 * 1.05^10
0864デフォルトの名無しさん
2006/07/28(金) 10:31:200865デフォルトの名無しさん
2006/07/28(金) 15:31:480866デフォルトの名無しさん
2006/07/28(金) 23:12:24悩み意味不明。
0867デフォルトの名無しさん
2006/07/29(土) 15:21:30止まるというプログラムを書きたいのですが、
その場合、どの部分でも止めたらいいわけでなく、排他制御というか
ある箇所までは絶対に処理を行って欲しいのですが、
このようなプログラムはMATLABで可能ですか?
0868デフォルトの名無しさん
2006/07/30(日) 05:06:17ボタン押したときにフラグ立てて
終了したいところで判定すればいいんじゃない?
0869デフォルトの名無しさん
2006/07/30(日) 05:09:170870859
2006/07/30(日) 13:20:36すみません、元の信号と、フィルタ処理をした後の2種類の信号があって、
周波数を横軸にしたmagnitudeのグラフを2種類並べたfigure1と、phaseのグラフを2種類並べたfigure2を別々に表示させたいんです。
1つの信号の周波数特性自体はfreq関数で表示できるのですが、上記のようにして利得と位相どうしを比較するfigureを作りたいです。
0871デフォルトの名無しさん
2006/07/30(日) 14:38:02hold と subplot の組合せで
0872859
2006/07/31(月) 19:05:09holdだと重ねて表示されてしまいますね、縦に並べて表示したかったんですが…。
でもありがとうございました!
0873デフォルトの名無しさん
2006/08/01(火) 00:29:360874デフォルトの名無しさん
2006/08/01(火) 14:53:42MATLAB R-linkでRの関数は使えるようになったんですが。
0875デフォルトの名無しさん
2006/08/01(火) 15:07:580876デフォルトの名無しさん
2006/08/01(火) 16:56:55仕様です。
画面表示と印刷(含EPS)では違う描画ルーチンを使っているようで、
グラフのグリッド幅なんかも違ってきますよね。
0877デフォルトの名無しさん
2006/08/02(水) 20:49:02uをsymbolとして、
if u >= 1, a=1
else a=0
end
みたいなことをやりたいんですが。。。
こんな感じでやると「'>='は'sym'classには定義されてない」って怒られます。
0878デフォルトの名無しさん
2006/08/05(土) 21:42:28forル−プ+textreadで、20Mのテキストデ−タを読ませたら
完了するまで約5Hかかった。(tic toc 計測)
即刻、forル−プはずして、textreadのオプション使用したら
約2minで完了。
MATLABのforル−プは怖っ。
0879デフォルトの名無しさん
2006/08/08(火) 12:41:370880デフォルトの名無しさん
2006/08/08(火) 20:22:38正規のライセンスでもそうな(ry
0881デフォルトの名無しさん
2006/08/08(火) 21:07:05for...endはBigSizeのデ−タ処理には向かない。
PCのパフォ−マンスで改善はされるけど。
使わないのが賢明。
工夫。工夫。 さ。
0882デフォルトの名無しさん
2006/08/11(金) 23:38:160883デフォルトの名無しさん
2006/08/15(火) 23:29:00ttp://wwwcs23.cs.kobe-u.ac.jp/~mori/Matlab/mexmemo.html
0884デフォルトの名無しさん
2006/08/17(木) 11:42:19mcc -m xxxx.m
とコンパイルしたファイル群をMATLABのないPCで実行しようとすると
「MCLMCRRT74.DLLが見つかりません」
と言われるんですが、どうしたらいいんでしょう。
問題のDLLは見つかったんですが、同じディレクトリに入れて実行すると
エラーメッセージさえ出さずに異常終了します。
MNTALABは7.2.0.232 (R2006a)、MCCはV4.4 (R2006a)です。
0885デフォルトの名無しさん
2006/08/17(木) 11:45:230886デフォルトの名無しさん
2006/08/17(木) 21:52:46ttp://www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1399
0887デフォルトの名無しさん
2006/08/29(火) 15:04:23Mファイルを人からもらってそのソースコードを見たいのですが、Editorで開いても文字化けして見ることができません。誰か教えて下さい。よろしくお願いします。
0888デフォルトの名無しさん
2006/08/29(火) 19:51:520889デフォルトの名無しさん
2006/08/29(火) 21:02:58*.mファイルは、暗号化されている。
0890デフォルトの名無しさん
2006/09/02(土) 16:49:54(s^2 + Xs + 1)/(s^2 + Ys + 1)みたいな伝達関数から
B=[なんたらかんたら]
A=[うんたらちんたらら]
みたいに一発でもとめたいんですけど。
0891デフォルトの名無しさん
2006/09/02(土) 22:45:32マルチポスト乙
0892デフォルトの名無しさん
2006/09/03(日) 01:01:00例えばインクリメントの++をMATLABでも使えるようにするとか…
すでに存在するの2項演算子の「+」ならplus関数をオーバーライドすればいいみたいですが、
存在しない演算子を新たに定義することは可能なんでしょうか。
0893デフォルトの名無しさん
2006/09/03(日) 18:56:03答えられない香具師は書かなくていいです。わかりやすく書ける人だけ書いてください。
0894デフォルトの名無しさん
2006/09/04(月) 01:13:17何かいい方法はないでしょうか?
よろしくお願いします。
0896デフォルトの名無しさん
2006/09/04(月) 01:38:23お前自身も「答えられない香具師」じゃないか。ここに書かなくていいです。
0897デフォルトの名無しさん
2006/09/04(月) 01:48:30ヒント:
ttp://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/matlab/math/funfun14.shtml#381254
2重積分のところも読むといいかも。
0898デフォルトの名無しさん
2006/09/04(月) 04:50:07ありがとうございます。
でも、なんで2重なんですか??
0899デフォルトの名無しさん
2006/09/04(月) 14:26:290900デフォルトの名無しさん
2006/09/04(月) 22:02:32関数の作り方が書いてある
0901デフォルトの名無しさん
2006/09/05(火) 00:34:29なんとかできました。
あと、数式じゃなくてfftして得られたグラフやデータを積分することもできるんでしょうか?
0902デフォルトの名無しさん
2006/09/05(火) 01:32:48台形公式、ガウス積分,シンプソン法なんかでググれば出てくると思います。
0903デフォルトの名無しさん
2006/09/05(火) 02:33:09パラメータの刻み幅はどこで決まるんですか?
0904デフォルトの名無しさん
2006/09/05(火) 02:34:47パラメータの刻み幅はどこで決まるんですか?
0905デフォルトの名無しさん
2006/09/05(火) 03:47:37刻み幅を指定して積分を行いたいなら,自分で積分のルーチンを作るしかないと思います。
0906デフォルトの名無しさん
2006/09/05(火) 03:58:130907デフォルトの名無しさん
2006/09/05(火) 04:01:060908デフォルトの名無しさん
2006/09/05(火) 22:57:02レス数が900を超えています。1000を超えると表示できなくなるよ。