Сначала вы должны узнать, какие элементы побережья. Согласно вашему определению, элемент является элементом побережья, если он граничит (справа) с 5. Если уровень моря равен 5 и является наименьшим возможным значением, т.е. ни один элемент не выходит за уровень моря, то сначала вы должны найти все элементы земли как,
land=a>5;
Это возвращает,
ans =
1 1 1 1 1 0 0
1 1 1 1 1 0 0
1 1 1 1 0 0 0
1 1 1 1 0 0 0
1 1 1 0 0 0 0
1 1 1 0 0 0 0
1 0 0 0 0 0 0
Теперь береговые элементы равны 1, за которыми следует 0. Взять разницу в столбцах матрицы земель,
coastTmp=diff(land,1,2);
возвращение
ans =
0 0 0 0 -1 0
0 0 0 0 -1 0
0 0 0 -1 0 0
0 0 0 -1 0 0
0 0 -1 0 0 0
0 0 -1 0 0 0
-1 0 0 0 0 0
и найдите -1с,
coast=find(coastTmp==-1);
которые
coast =
7
19
20
24
25
29
30
Отсюда легко. Градиент представляет собой разность (1,1) со всеми береговыми элементами, т.е.
slope=a(coast)-a(1,1); % negative slope here
даяние,
slope =
-3.700000000000000
-3.400000000000000
-3.900000000000000
-3.000000000000000
-4.000000000000000
-4.000000000000000
-2.000000000000000
и, конечно, среднее значение,
mean(slope);