Da para fazer assim: calcula_matriz <- function (A = rbind(c( p + 8, 3), c( 5, p - 1)), limite) { for (p in 1:limite ) { print(A) } } calcula_matriz(limite = 1)
Mas se A tiver sempre o mesmo formato, não precisa ser parâmetro: calcula_matriz <- function (limite) { for (p in 1:limite ) { print (rbind(c( p + 8, 3), c( 5, p - 1))) } } calcula_matriz(limite = 1) Ainda, se A tiver vários formatos diferentes, da para usar uma gambiarra: calcula_matriz <- function (A = 'rbind(c( p + 8, 3), c( 5, p - 1))', limite) { for (p in 1:limite ) { print(eval(parse(text=A))) } } calcula_matriz(limite = 1) Note que agora A é texto (ta entre aspas), e não mais uma expressão do R. Assim tu pode fazer: calcula_matriz(A = 'rbind(c(p, 1/p), c(p ^ 2, log(p)))', limite = 1) 2014-06-05 12:26 GMT-03:00 Waldelene Moura <waldel...@yahoo.com.br>: > Oi Rodrigo entendi um pouco o que voce disse, mas nao consegui juntar com > a construção da minha matriz, ja que é ela o parâmetro da função. > > Estou fazendo umas funções no meu mestrado na area de controle em que > preciso passar matrizes com incertezas politópicas, como parametros,, no > caso as incertezas é a variável p, entro tambem com a variação dessas > incertezas np exemplo abaixo chamei de limite,,, > > vou detalhar um pouco mais uma função bem modesta para voce me ajudar e > dizer onde posso aproveitar sua sugestão. > > > ----- programa principal ----------------------------------------- > > limite = 3 # da o limite de p , no caso p > vai variar de 1 a 4 (verifique que eu não defini a variável p) > A = rbind ( c( p + 8 , 3), > c( 5 , p - 1) > > calcula_matriz(A, limite) # chamada da função > > ------ agora a funcão -------- > > calcula_matriz <- function (A, limite) { > for ( p in 1 : limite ) { # só aqui definir p > print (A) > } > } > > ------------------------------------------------------------------ > O resultado seria: > > para p = 1 A = [9 3; 5 0] > para p = 2 A = [10 3; 5 1] > para p = 3 A = [11 3; 5 2] > > agradeço a quem puder ajudar, > > Waldelene Moura > Analista de Sistemas > Universidade Federal do Maranhão - PROEN > > > > Em Quinta-feira, 5 de Junho de 2014 11:39, Rodrigo Coster < > rcos...@gmail.com> escreveu: > > > Waldelene, > > O que da pra fazer é definir o valor do parâmetro como padrão. Por exemplo: > > calcular_matrizes <- function(x = p + 2) { > p <- rnorm(1) > return(x) > } > calcular_matrizes() > > Ele só vai executar o 'x = p + 2' quando a variável x for chamada, que > ocorre somente depois de definir o valor de p. > > > > 2014-06-05 11:27 GMT-03:00 Waldelene Moura <waldel...@yahoo.com.br>: > > > Olá pessoal, se alguem puder me ajudar nesse problema agradeço. > > É o seguinte > > Preciso passar como parâmetro de uma função uma matriz que possui nos > seus > elementos uma variável p, sendo que essa variável p só vai assumir > valores dentro da função > chamada, exemplo, > > > A = cbind(c(p+5, 6), > c(10, p+8)) > > calcular_matrizes (A) > > > dentro da função calcular_matrizes tenho que achar valores para essa > matriz para varios valores de p > > A pergunta é, como passar esse parâmetro, no caso a matriz A na função, > sem dar erro de que a variável p não foi definida? (object 'p' not found). > > Waldelene Moura > Analista de Sistemas > Universidade Federal do Maranhão - PROEN > > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. > > > > >
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.