나는 C로 수치 시뮬레이션을위한 프로그램을 작성하고 있습니다. 시뮬레이션의 일부는 서로 다른 노드에 약간의 부동 소수점 값을 갖는 공간적으로 고정 된 노드입니다. 그것은 유향 그래프와 같습니다. 그러나 두 노드가 너무 멀리 떨어져 있으면 (컷 - 오프 길이 a보다 멀리)이 값은 0입니다.C에서 거대한 행렬을 구현하는 방법
이 모든 "상관 관계"또는 부동 값을 나타 내기 위해 2D 배열을 사용하려고 시도했지만 저는 100.000 이상의 노드를 가지고 있는데, 이것은 40GB 메모리 정도에 해당합니다.
이제 저는 그 문제에 대한 다른 해결책을 생각하려고합니다. 나는이 모든 값을 하드 디스크에 저장하고 싶지 않습니다. 나는 또한 그들을 즉시 계산하고 싶지 않다. 하나의 아이디어는 Matlab에서 사용할 수있는 것과 같은 일종의 희소 행렬이었습니다.
다른 값,이 값을 저장하는 방법이 있습니까?
저는 C가 처음이므로 너무 많은 경험을 기대하지 마십시오.
감사와 안부, 월 올리버
키가 (행 x 열) 인 해시/맵의 경우는 어떻습니까? 0이 아닌 값을 가진 행렬 항목만큼 많은 요소가 있습니다. –
정말 구체적인 질문이 아닙니다 ... 예, 매트릭스가 희박합니다. 일부 알고리즘을 찾아 보겠습니다. 매트릭스의 nulll 노드 비율에 대한 세부 정보 또는 시뮬레이션에 대한 자세한 정보가있는 경우 다른 사람이 그레이 표현 이외의 다른 솔루션을 제안 할 수 있습니다. – pascal
... 예를 들어,이 행렬로 무엇을하고 싶습니까? – pascal