行列の要素を取り出したり、行列の情報を取得する方法について。
単一の要素を取り出す
要素の位置を指定 例:Aの(2,2)要素を取り出します。
A = [1 2 3; 4 5 6]; B = A(2, 2)
末尾の要素を指定 end を用いることで行または列の末端の要素を選択できます。 行列の要素数が既知でない場合など、末尾の要素番号がわからない場合などに便利です。
A = [1 2 3; 4 5 6]; B = A(2, end) % Aの2行目、最終列の要素を選択
最大要素 max() を用いることで行列の最大要素を選択できます。 Aがベクトルの場合はmax(A)でAの要素のうち最大の要素が得られます。 Aが行列の場合、max(A) はAの列をベクトルとして取り扱い、各列の最大要素を含む行ベクトルを返します。
A1 = [1 3 7]; A2 = max(A1) % A2 = 7 B1 = [1 8 3; 4 5 2]; B2 = max(B1) % B2 = [4 8 3] 各列の中で最大の値が返される B3 = max( max(B1) ) % B3 = 8
最小要素 min() を用いることで行列の最小要素を選択できます。 Aがベクトルの場合はmax(A)でAの要素のうち最小の要素が得られます。 Aが行列の場合、max(A) はAの列をベクトルとして取り扱い、各列の最小要素を含む行ベクトルを返します。
A1 = [1 3 7]; A2 = min(A1) % A2 = 1 B1 = [1 8 3; 4 5 2]; B2 = min(B1) % B2 = [1 4 2] 各列の中で最小の値が返される B3 = min( min(B1) ) % B3 = 1
複数の要素を取り出す
特定の行または列を全て取り出す コロン(全称記号)用いることで特定の行または列を全て取り出すことが出来ます。
A = [1 2 3; 4 5 6; 7 8 9]; B1 = A(:, 2) % 2列目の全ての要素 B2 = A(3, :) % 3行目の全ての要素 B3 = A([1 3], :) % 1行目および3行目の全ての要素
特定の範囲の要素を取り出す コロン(全称記号)用いることで特定の範囲の要素を取り出すことが出来ます。
A = [1 2 3; 4 5 6; 7 8 9]; B1 = A(1:2, 2) % 2列目の、1行目から2列目の要素 B2 = A(2:3, 1:2) % 2から3行目の、1から2列目の要素 B3 = A([1 3], 2:3) % 1行目および3行目の、2から3列目の要素 C = diag(A) %
行列の情報を得る
size() 行列の各次元のサイズを取得できます。
A = [1 2 3; 4 5 6]; D = size(A) R = size(A, 1) C = size(A, 2) [m n] = size(A)
length() 行列の最大次元の要素数を得られます。
A = 3:6; L = length(A) B = [1 2 3 4; 5 6 7 8]; L = length(B)
any() 配列中に非ゼロの要素が1つでもあれば1を、そうでなければ0を返します。
A = [0 3 2]; B = [0 0 1; 2 0 0]; any(A) % 配列がベクトルの場合、ベクトル中に非ゼロの要素が存在すれば1、そうでなければ0 any(B) % 配列が行列の場合、各列ベクトルについて値を返す
all() 全ての要素が非ゼロなら1を、そうでなければ0を返します。
A = [0 1 2]; B = [1 2 1]; all(A) all(B)
find() 非ゼロ要素のインデックスを返します。
A = [1 0 2 3 0]; find(A) B = [1 0 1; 0 0 2]; [x, y] = find(B)
numel() 配列に含まれる要素の数を返します。
A = [1 2 3 4; 5 6 7 8]; mean = sum( A(:) ) / numel(A) % Aの全要素の平均を計算
isempty() 配列が空の配列の場合は1を、そうでなければ0を返します。
A = 1; B = [0 0]; C = []; [isempty(A) isempty(B) isempty(C)] A = [0 0 0]; F = find(A); [isempty(A) isempty(F)]
isvector() 配列がベクトルなら1を、そうでなければ0を返します。
A = 1; B =[1 0]; C = zeros(2); [isvector(A) isvector(B) isvector(C)]
コメント