AlekseyPavlov
@AlekseyPavlov
пока Null-программист

Так в чём же логика этой конструкции на R?

Хочу отобразить матрицу в виде трёхмерной топографии (используя persp(matrix, expand=value)) и в виде волны (испытываю сложности в типах данных, вот и тренируюсь). Вот мой код:
m <- matrix(0, 10, 10)
st <- 1
fi <- 10
s <- 1
f <- 10
n <- st:fi
l <- s:f

for (j in 1:10) {
  for (i in n) {
    m[i] <- l[i]
  }
  s <- s + 1
  f <- f + 1
  st <- st + 10
  fi <- fi + 10
}
m <- matrix(m, 10, 10)

где значение 2 элемента будет равняться значению 11 (вторая строка), значение 3 элемента - 12 и 21 (вторая и третья строки соответственно) и тд. Но на выход получаю это (ещё без преобразования в матрицу):
[,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    1    0    0    0    0    0
 [2,]    2    0    0    0    0    0
 [3,]    3    0    0    0    0    0
 [4,]    4    0    0    0    0    0
 [5,]    5    0    0    0    0    0
 [6,]    6    0    0    0    0    0
 [7,]    7    0    0    0    0    0
 [8,]    8    0    0    0    0    0
 [9,]    9    0    0    0    0    0
[10,]   10    0    0    0    0    0
      [,7] [,8] [,9] [,10]
 [1,]    0    0    0     0
 [2,]    0    0    0     0
 [3,]    0    0    0     0
 [4,]    0    0    0     0
 [5,]    0    0    0     0
 [6,]    0    0    0     0
 [7,]    0    0    0     0
 [8,]    0    0    0     0
 [9,]    0    0    0     0
[10,]    0    0    0     0

Так вот. Это я свою логику нарушил или у языка какая-то своя есть?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
@potan
Функциональный программист
В внешнем цикле не меняется l, которая используется во внутреннем. А во внутреннем не используется j, и одни и те же элементы m переписываются каждый раз.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы