2013-07-18 7 views
1

Я хотел бы получить функцию, которая возвращает матрицу.Функция возвращает неожиданное значение

mat1 <- function(k) 
{ 
    mat2 <- matrix(0, ncol = 664, nrow = 182) 
    for (i in 1:664) 
    { 
    mat2[,i] <- weight0.0025(i,k) 
    } 
} 

, где weight0.0025 - это функция, которая возвращает 182 длинный вектор, но почему-то это не работает.

Что еще больше расстраивает то, что

mat2 <- matrix(0, ncol = 664, nrow = 182) 
for(i in 1:664) 
{ 
    mat2[,i] <- weight0.0025(i,k) 
} 

работает, как ожидалось.

Я знаю, что могу написать в виде трехмерного массива, но мне нужно оптимизировать k.

+0

"weight0.0025" название функции? – phoxis

+0

Да, это функция, которая возвращает вектор длины 182 – user1627466

ответ

4

Ваша функция требует оператора возврата.

mat1 <- function(k){ 
    mat2 <- matrix(0, ncol = 664, nrow = 182) 
    for (i in 1:664){ 
    mat2[,i] <- weight0.0025(i,k) 
    } 
    return(mat2) 
} 
+0

Так было так просто ... Спасибо. – user1627466

Смежные вопросы