Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

227
Vistas
Problema de memoria al leer tablas csv Netlogo

Estoy trabajando en un código de Netlogo que representa cientos de tortugas. Cada tortuga se caracteriza por un conjunto de parámetros y variables de estado que se almacenan en tablas csv (creadas antes de ejecutar el código de Netlogo). Las tablas son específicas de etapa, es decir, si una tortuga alcanza cierta edad y cambia de etapa de vida (p. ej., juvenil --> adulta), tiene que leer otra tabla que sea específica para la nueva etapa de vida. Además, cada tabla se nombra con un número (p. ej., "archivo_juvenil_1.csv","archivo_adulto_1.csv",..."archivo_adulto_8.csv", etc.), y cada tortuga elige aleatoriamente entre estas tablas. Aquí hay un ejemplo:

 set ran.num 50 ; there are 50 tables for juveniles ask turtles[ let num.file random (ran.num) + 1 set unique.num.file num.file ; I added this line so that turtles keep the same table number among stages. ; I tried this to gain on speed and memory, but it did not change so much let file.name (word "juvenile_file_" num.file ".csv") if( file-exists? file.name = FALSE ) [ user-message "Warning: input file with num does not exist in the current directory!" ] set juvenile.input csv:from-file file.name set index 1 ; to read the firs row of the table. index in increased at each time step. [other code lines] set sex item 16 item index juvenile.input ; read column 17, first numerical row of the table (very first row has headings) set stage item 17 item index juvenile.input set exposure.surv item 18 item index juvenile.input set reproduction-period item 19 item index juvenile.input ]

[otras líneas de código]

 if Length >= 0.95 * L-max and stage = "juvenile" [ set stage "adult" set juvenile.input 0 let file.name (word "adult_" choice.GUTS "_file_" unique.num.file ".csv") if( file-exists? file.name = FALSE ) [ user-message "Warning: input file with num does not exist in the current directory!" ] set adult.input csv:from-file file.name ]

Debido a que pedirles a las tortugas que lean las tablas cuando cambian de etapa de vida es demasiado exigente, pensé que hubiera sido mejor leer todas las tablas en el procedimiento de configuración y luego elegir una de ellas más tarde cuando fuera necesario. Sin embargo, ¿cómo puedo leer todas las tablas de forma automática en el procedimiento de configuración? Simplemente escribir una docena de nombres (por ejemplo, adult.input.1, adult.input.2, juvenil.input.1, juvenil.input.2, etc.) me parece bastante lento. Espero que esto sea claro. ¡Gracias por tu ayuda!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Consideraría la extensión de la tabla. Ponga todos los parámetros para adultos en un archivo, con filas que comienzan con el número de conjunto de parámetros (1-8, etc.) y luego contienen todos los valores de los parámetros como columnas.

Luego, podría leer todos los parámetros en una tabla (usando csv: from-file y table: from-list.

Luego, sus agentes pueden elegir un número de conjunto de parámetros aleatorio y obtener su lista de valores de parámetros de la tabla usando table:get.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda