課題:あるベクトルから特定の要素を抜き出したい
例:
v = [1,2,3,4,5]
から
[1,3,4]
だけ抜き出したい.
解決法:logicalで論理配列を作成して,要素を制御する
方法:
- 論理配列のもとになる0/1で構成されるベクトルを作成する
- logical関数で論理配列に変換する
- ベクトルに適用する
logical_mask.m
>> v = 1:10
v =
1 2 3 4 5 6 7 8 9 10
>> mask = [1,0,1,1,0]
mask =
1 0 1 1 0
>> mask = horzcat(mask,mask)
mask =
1 0 1 1 0 1 0 1 1 0
>> logical_mask = logical(mask)
logical_mask =
1 0 1 1 0 1 0 1 1 0
>> v(mask)
Subscript indices must either be real positive integers or logicals.
>> v(logical_mask)
ans =
1 3 4 6 8 9
logicalで論理配列に変換するのがポイント