Estoy escribiendo un programa para una simulación numérica en C. Parte de la simulación son nodos espacialmente fijos que tienen algún valor flotante para cada otro nodo. Es como un gráfico dirigido. Sin embargo, si dos nodos están demasiado lejos, (más allá de una longitud de corte a) este valor es 0.Cómo implementar una matriz enorme en C
Para representar todas estas "correlaciones" o valores flotantes, traté de usar una matriz 2D, pero desde Tengo 100.000 y más nodos, que corresponderían a una memoria de 40GB más o menos.
Ahora, estoy tratando de pensar en diferentes soluciones para ese problema. No quiero guardar todos estos valores en el disco duro. Tampoco quiero calcularlos sobre la marcha. Una idea era algún tipo de matriz dispersa, como la que se puede usar en Matlab.
¿Tiene alguna otra idea, cómo almacenar estos valores?
Soy nuevo en C, así que no espere mucha experiencia.
Gracias y un saludo, Ene Oliver
¿Qué pasa con algún tipo de hash/mapa donde está la clave (fila x col)? Solo tendría tantos elementos como entradas en la matriz con un valor distinto de cero. –
No es realmente una pregunta específica ... Sí, matrices dispersas. Busque algunos algoritmos ... Tal vez con algunos detalles sobre el porcentaje de nulll nodos en la matriz, o más información sobre la simulación, tal vez alguien podría sugerir otras soluciones que una representación grah. – pascal
... por ejemplo, ¿qué quieres hacer con esta matriz? – pascal