X = linsolve(A,B) は、これらの方法の 1 つを使用して線形システム AX = B を解決します。 A が square の場合、linsolve は部分ピボットを使用した LU 分解を使用します。 その他の場合はすべて、linsolve は列ピボットを使用した QR 分解を使用します。
音声を取り込む・再生する † WAVREAD Microsoft WAVE (".wav") サウンドファイルの読み込み filename = 'a.wav'; %読み込むファイル名を指定 [data,Fs,Bits] = wavread(filename); %dataに音声データ、Fsにはサンプリング周波数を代入 sound(data,Fs); %サンプリング周波数 Fs で再生 wavplay(data,Fs); %サンプリング周波数 Fs でWindows のオーディオ出力を使って再生 wavplay(data,Fs,'async'); %音声の再生に平行して処理を続行する disp('再生中...'); デフォルトで、以下のような音声データが用意されています。 load laughter; %笑い声 sound(y, Fs); load handel; %handelのハレルヤ
matlabで複数条件のif文を行列計算で行うには? matlabではfor文などは行列計算で回したほうが高速化できると聞きました。 for文でのやりかたはわかったのですが、複数条件でのif文ではどのように書けばよいのでしょうか? 自分のプログラムは以下のようなものです for i=1:100 for j=1:100 theta_kari=atan(abs(B(j,i))/abs(A(j,i))); if A(j,i)>=0&&B(j,i)>=0 theta(j,i)=theta_kari; elseif A(j,i)<0&&B(j,i)>=0 theta(j,i)=theta_kari+(pi/2); elseif A(j,i)<0&&B(j,i)<0 theta(j,i)=theta_kari+pi; elseif A(j,i)>=0&&B(j,i)<0 theta(j,i)=thet
今回はwaitbarを使ってであれこれやってみた話です。 処理に時間がかかる等には状況を視覚的に知ることが出来るwaitbarって便利ですよね! waitbarの存在は 私が卒研のデータを先輩から引き継いだ際に使われていたので知りました。 ここでwaitbarの例を・・・ %% waitbarの例 h = waitbar(0,'Please wait...'); for ii=1:100 pause(1/10); % 処理の負荷を再現 waitbar(ii/100,h) end close(h) これだけなら、便利だなーで終わったんですが 引き継いだ実行ファイルでは %% waitabarの例2 h = waitbar(0, 'step1:○○○'); for ii = 1:100 pause(1/10); % 処理の負荷を再現 waitbar(ii/100, h); if ii==30
卒業研究がありましてしばらく更新できていませんでした(元々、頻繁に更新してませんが) 卒研の過程で思いつきで作ったcloseの応用関数が思いのほか便利だったので紹介したいと思います。 解析中に、、、 「うわぁ〜 figure出過ぎでおも!!」 「figure1〜50とか多すぎワロタ」 「・・・」 「でもこの48番目はなかなかいい結果で比較したいな」 と、ここで指定したfigure番号以外のfigureを消すことが出来たら便利だなと考えました。 元々こういう場合には、 以下のように入力して >> close([1:47 49:50]); figureが1〜50まで出力されていた時にこのように48を残して消すことが出来ます。 ですが、1〜50のうち一つでも消してしまっていたらうまく作動しませんし、 入力が面倒臭すぎでやってられないので関数化してみたらいいじゃないかと思いました。 調べると似た
MATLABを使っていて、OSの環境変数を使用できると便利な場面が意外とあると思うのですが、そんな場合はgetenvを使用することで簡単に実現できます。 N = getenv('環境変数名') 例えば、自分はシミュレーションを複数の計算機でかけてるんですが、進捗状況メールがどの計算機から送られてきたのか混乱することも度々… ということを繰り返した結果、今では進捗状況をメールするときに下記のようにサブジェクトにコンピュータ名を含めています。 subject = strcat(['[', getenv('COMPUTERNAME'), ']', 'テストメール']); 一応書いておくと、Windowsの場合は環境変数が見たければ、コマンドプロンプトで「set」コマンドを引数なしで実行すれば見れます。 参考:MATLAB 関数リファレンス - getenv 簡単な作業ログの保存などに使う関数di
四則演算をする † 参考:行列と配列について + 加算 - 減算 * 乗算 / 除算 \ 左除算 (左から右を割る) ^ ベキ乗 ' 複素共役転置 余りは rem(x,y) (XをYで割ったときの余り) 商は floor(x/y) 平方根(ルート)は sqrt(X) 実行例 >> 1 + 2 %足し算 ans = 3 >> 5 - 3 %引き算 ans = 2 >> 3 * 10 %掛け算 ans = 30 >> 5 / 10 %割り算 ans = 0.5000 >> 5 \ 10 %割り算 (左から右を割る) ans = 2 >> 2 ^ 4 %べき算 ans = 16 ベクトル同士の四則演算 以下の配列A,Bを使って説明します。 >> A = [1 2 ; 3 4] A = 1 2 3 4 >> B = [-1 -2 ; -3 -4] B = -1 -2 -3 -4 >> A + B
離散力学系について考えます。(本質的にロジスティック写像と同じ)以下の写像を対象にします。 例えば、c=1.23の時、初期値x=0から始めるこの繰り返し写像は2点からなる周期解に収束します。 これを見ておきましょう。 /* 6.3.2m */ load("dynamics")$ evolution(y^2-c, 0, 50), c : 1.23$ 使用した機能 evolution cを変化させた時、周期解に現れる点の数がどうなるか見てみましょう。 /* 6.3.3m */ orbits(y^2 - c, 0, 100, 100, [c, 0.5, 2, 0.005], [style, dots]); 使用した機能 orbits cを増やすに連れて周期解に現れる点の数が増えていきます。点の数が変わるcの値を分岐点と呼びます。 例えば、を求めてみましょう。 /* 6.3.5m */ clow
Cでの行列計算 行列の計算は,Matlab を利用するべきですが, どうしてもCプログラムを作りたいときは,添付を参考にしてください。 ****行列計算のCプログラムパッケージ**** 適当なディレクトリに解凍して,Visual C++ ver.6 でコンパイルできます。 ..\matCon\mat_con.dsw をダブルクリックすれば,Visual C++ で開く。 ソースプログラムは,すべて,..\matCon\src にある。 バイナリは,すべて,..\matCon\bin にできる。 ..\matCon\src 中の ***.main.c という名前には,main()がある。 各プログラムの簡単な説明。(100行100列程度ならこの位でよい。) matio.main.c 行列の入出力 mat_add.main.c 2つの行列の和 mat_sub.main.c 2つの行列の差 m
動的有限要素解析をするときには、メッシュがどう動いているのかをどうしても見たくなる。そんなときに活躍するグラフィックス。今回の目標はきれいに動かしたものをみせること。そこで基本からまとめていきたいと思う。(参考資料:MATLABプログラミング入門) 1.関数を見る 〜plot〜 1-1. 1変数関数を書く 何も考えず、1変数関数を書くにはplot( )を使えばよい。例えば sinx というグラフを書くには、範囲指定をして、次のように書く。 X = 0 : pi./100 : 2.*pi ; Y = sin(X) ; plot(X,Y) これだけでsin のグラフが書けるはずである。 図1 sinxのグラフ 1-2. 複数の関数を書く ■その1 〜figure〜 複数のウィンドウを開いて書くには、figureを使えばよい。 figure X = 0 : pi./100 : 2.*pi ;
( 1 ) M A T L A B / S i m u l i n k に よ る シ ミ ュ レ ー シ ョ ン 目 次 1 実験の目的 1 – 1 2 PID 制御による垂直駆動アームの角度制御 1 – 1 2.1 数学モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 1 2.2 PID 制御の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 2 2.2.1 PID 制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く