Сначала вы должны выяснить, какие элементы побережья. Согласно вашему определению, элемент является элементом побережья, если он граничит (справа) с 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
и найдите -1s,
coast=find(coastTmp==-1);
которые,
coast =
7
19
20
24
25
29
30
Отсюда легко. Градиент - это разность a(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);
person
Jorge
schedule
08.01.2012