MATLABでよく使う配列操作をメモしておく。
目次
行ベクトルの要素の追加
[a b]
>> b = 11:1:20 b = 11 12 13 14 15 16 17 18 19 20 >> a = 0:1:10 a = 0 1 2 3 4 5 6 7 8 9 10 >> a = [a b] a = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
horzcat(A, B)
>> a = 0:1:10 a = 0 1 2 3 4 5 6 7 8 9 10 >> a = horzcat(a, 11) a = 0 1 2 3 4 5 6 7 8 9 10 11
列ベクトルの要素の追加
[a; b]
>> a = (1:1:10)' a = 1 2 3 4 5 6 7 8 9 10 >> b = (11:1:20)' b = 11 12 13 14 15 16 17 18 19 20 >> [a; b] ans = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
vertcat
>> a = (1:1:10)' a = 1 2 3 4 5 6 7 8 9 10 >> b = (11:1:20)' b = 11 12 13 14 15 16 17 18 19 20 >> a = vertcat(a, b) a = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
空の配列に追加
バッチ処理して配列を追加した場合がよくある。 その場合は、まず空の配列を用意しておく。>> a = double.empty(0, 10) a = 0×10 empty double matrix
行か列のどちらかのサイズを0にしておく必要がある。
それからvertcat / horzcatで行または列を追加する:
>> a = vertcat(a, 1:1:10) a = 1 2 3 4 5 6 7 8 9 10 >> a = vertcat(a, 11:1:20) a = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
要素を削除するには
追加だけでなく、要素を削除する方法もメモしておく。
例えば 3番目の要素を削除するには
a(3) = [];とすれば良い。
>> a = (1:1:10) a = 1 2 3 4 5 6 7 8 9 10 >> a(3) = [] a = 1 2 4 5 6 7 8 9 10
このやり方は列ベクトルか行ベクトルだけに使える(行列の場合は使えない)。
このやり方はセル配列に対しても使える。(Matlabでセル配列内の特定の要素を削除 – yuishiノート)