を使用して、定義に従って有効な行の論理インデックスを作成できますall(~diff(D(:,1:2)), 2)
。つまり、1列目と2列目の両方の行ごとの差がゼロである要素です。
次に、このインデックスを使用して、整数行インデックスまたはグローバル行方向平均のマトリックス内のインデックスを返すことができます。
index_row = 1:1:size(D, 1); % linear row index
index_valid = all(~diff(D(:,1:2)), 2); % valid rows (logical)
mean_matrix = (D(1:end-1,:) + D(2:end,:))/2; % matrix of all means
% matrix of valid mean rows only
mean_matrix_valid = mean_matrix(index_valid,:); % logical index
% linear index of valid rows, i.e. the pairs indexed (i, i+1)
index_row_valid = index_row(index_valid); % valid rows (int)
たとえば、
D = [1 2 3 4 5; 1 1 1 1 1; 1 2 4 4 4; 1 2 3 3 3; 2 2 2 2 2; 2 2 3 3 3];
>> D =
1 2 3 4 5
1 1 1 1 1
1 2 4 4 4
1 2 3 3 3
2 2 2 2 2
2 2 3 3 3
上記を使用して取得します
>> index_valid =
0
0
1
0
1
>> index_row_valid =
3 5
>> mean_matrix_valid =
1.0000 2.0000 3.5000 3.5000 3.5000
2.0000 2.0000 2.5000 2.5000 2.5000
これは、それぞれ行(3,4)と(5,6)の平均です。