[[研究室限定/MATLAB]]

#contents

***license [#macebc55]
-インストール済のMATLABについて、ライセンス番号を出力~
***disp [#ccedc5ef]
-変数内の値を出力~
a = 25;~
disp(a)~
>>a = 25~
<<disp(['aの値は',a,'です'])~
>>aの値は25です
***celldisp [#r1f4d928]
-セル配列の中身を出力~
-使い方はdispと同様~
***plot [#yea4a4b2]
-グラフ出力~
***tic toc [#n404f60a]
-tic〜toc間の時間を計測して表示~
tic~
プログラム~
toc~
***nargin, nargout [#racf8924]
-現在の入力変数の数と出力変数の数を取得~
if nargin < 3~
 入力変数が3つよりも少ない場合
a=0;~
end~
**数学 [#n026eba5]
***abs [#sdb12e53]
-絶対値~
a = -25;~
abs_a = abs(a);~
print(abs_a)~
disp(abs_a)~
>> abs_a = 25~
***mean [#h10c7a1e]
-平均値~
mean(A,n)~
A:配列~
n:計算の向き~
n=1は行の要素の平均~
n=2は列の要素の平均~
***roots [#i90e610a]
-n次方程式の解~
p = [a1 a2 a3 ... an]~
a = roots(p)~
p:=a1*x(n-1)+a2*x(n-2)+a3*(n-3)+...+an*x(0)~
a:解が格納される変数(一次ベクトル)~
***sum [#q8b49ab4]
-総和~
S = sum(matrix,sv);~
S:結果値~
matrix:配列データ~
sv:取得する配列方向~
a = ~
1 2 3~
4 5 6~
S = sum(a,1);~
disp(S)~
>> S = ~
5 7 9~
<<S = sum(a,2);~
disp(S)~
>> S = ~
6~
15~
***conv [#o59fb191]
-畳み込み積分~

**配列関連 [#y99e1972]
***zeros [#yd3b35af]
-0詰めの配列を定義~
a = zeros(2,4);~
a =~
0 0 0 0~
0 0 0 0~
b = zeros(3);~
b =~
0 0 0~
0 0 0~
0 0 0~
 -事前のメモリ確保
***ones [#vbd60c20]
-1詰めの配列を定義~
-関数の使い方自体はほぼzerosと同様~
n = 6;~
l = 10;~
v = 1:n;~
mat = repmat(v',1,l).*ones(n,l)~
mat =~
1 1 1 1 1 1 1 1 1 1~
2 2 2 2 2 2 2 2 2 2~
3 3 3 3 3 3 3 3 3 3~
4 4 4 4 4 4 4 4 4 4~
5 5 5 5 5 5 5 5 5 5~
6 6 6 6 6 6 6 6 6 6~
***cell [#ic7f245e]
-セル配列の定義~
***length [#q3e05da8]
-1次元ベクトルの配列長を取得~
L=length(data);~
L:取得した配列長~
data:1次元ベクトル~
***size [#qc516596]
-配列について任意の大きさを取得~
m_size = size(matrix,sv);~
m_size:取得した任意の配列長~
matrix:配列データ~
sv:取得する配列方向~
a = ~
1 2 3~
4 5 6~
a_size = size(a,1);~
disp(a_size)~
>> a_size = 2~
<<a_size = size(a,2);~
disp(a_size)~
>> a_size = 3~
<<[m1 m2] = size(a);~
disp(m1)~
>>m1 = 2~
<<disp(m2)~
>>m2 = 3~
***max [#se69c9ed]
-任意の範囲内で最大値となる配列位置及びその値を取得~

***min [#a5f907eb]
-任意の範囲内で最小値となる配列位置及びその値を取得~

***sort [#j5c46b9a]
-特定の行列要素を要素値の大小に従って並び替え~
A = [1 5 2 8 3];~
[B,index] = sort(A);~
B =~
~
1 2 3 5 8~
~
index =~
~
1 3 5 2 4~
B:並び変えた後~
index:元の行列におけるインデックス~

***diag [#j6468a46]
-対角行列の生成~
-入力は行ベクトルであることが必須~
--sumと組み合わせることで対角成分の抽出目的に利用可能~
n = ones(5);~
mat_n = diag(n);~
disp(mat_n)~
~
mat_n =~
~
1 0 0 0 0~
0 1 0 0 0~
0 0 1 0 0~
0 0 0 1 0~
0 0 0 0 1~
-diag(diag(mat_n))とするとdiag(mat_n)の対角成分が列ベクトルで抽出可能~
vec_n = diag(mat_n);~
disp(vec_n)~
~
vec_n =~
~
1~
1~
1~
1~
1~

***pascal [#y9aac5c4]
-パスカルの三角形の生成~
m = 5;~
mat_p = pascal(m);~
disp(mat_p)~
~
mat_p =~
~
1     1     1     1     1~
1     2     3     4     5~
1     3     6    10    15~
1     4    10    20    35~
1     5    15    35    70~
~
--対角行列と併用すると二項展開の係数が抽出可能だが、それには対角行列の生成関数diagと行列の回転rot90などが必須~
m = 5;~
n = ones(1,m);~
pascal_vec = diag(diag(n).*rot90(pascal(m)));~
disp(pascal_vec)~
~
pascal_vec = ~
~
1~
4~
6~
4~
1~

***rot90 [#g0e32f84]
-逆時計回りに行列成分を&pi;/2回転~

***fliplr [#j1c72e52]
-行列成分を左右反転~

***flipud [#sc24acc7]
-行列成分を左右回転~

***ismember [#qcae737e]
-配列の中身を比較して共通するものを1、ないものを0としたベクトルを出力~
out = ismember(orig,comp);~
out:orig内でcompと共通する値を1として配列のアドレスに比較した出力結果、origと同じ長さで出力~
orig:比較対象~
comp:比較元~
~
orig = [1 3 5 7];~
comp = [4 5];~
out = ismember(orig, comp);~
disp(out)~
>> 0   0   1   0

***isempty [#jc3b18ec]
-配列の中身について、空行列かどうかを出力~

**音声処理 [#qce902a7]
***wavread [#t7d5fbe5]
-音声ファイルの読み込み~
[S Fs] = wavread('Filename');~
S:信号~
Fs:サンプリング周波数~
Filename:読み込む音声ファイルへのパス~
 [out Fs] = wavread('single_sound.wav');
***wavwrite [#zaa47b2d]
-音声ファイルの書き込み~
wavwrite(data,Fs,B,'Filename');~
data:保存する信号データ~
Fs:サンプリング周波数~
B:ビット数~
Filename:書き込む音声ファイルへのパス~
 wavwrite(re_S,Fs,16,'sound/rec_re_sig.wav');

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS