문제

확인 중 이것 예제(API 예제는 마지막에 있습니다), 몇 가지 질문을 드리고 싶습니다.

1) 예제에서 우리는 0이 아닌 요소를 가진 행렬 a를 제공하고 있습니다. 그런데 행렬의 실제 크기는 얼마입니까? 그리고 이것은 행렬의 요소이거나 0이 아닌 요소를 포함하는 위치입니까?

2) 계산 시(culaSparseSetDcooData와 같은 함수에서 사용) 0 및 0이 아닌 요소를 포함하는 행렬 A를 사용할 수 있습니까?단지 테스트하기 위해 샘플 행렬을 생성하려면 요소가 0인 행렬을 생성한 다음 일부 요소로 채워야 합니까?

도움이 되었습니까?

해결책

1) 흥미롭게도 COO 형식의 행렬 크기는 명시적으로 지정되지 않습니다.이는 행렬의 0이 아닌 요소의 좌표로 구성됩니다.0이 아닌 요소가 1개 있는 COO 행렬이 있는 경우 다음과 같을 수 있습니다.

double a[1] =  { 1.0 };
int colInd[1] = { 10 };
int rowInd[1] = { 20 };

그리고 (행/열 인덱스에서 알 수 있듯이) 다음을 갖는 행렬의 요소를 설명합니다. 적어도 크기 11*21 또는

double a[1] =  { 1.0 };
int colInd[1] = { 1000 };
int rowInd[1] = { 2000 };

그리고 다음을 갖는 행렬의 요소를 설명합니다. 적어도 크기 1001*2001

하지만 이 예에서는 이것이 2차 행렬인 것처럼 보입니다. n=8 크기인 것 같습니다.(안타깝게도 해당 내용에 대한 자세한 문서는 없는 것 같습니다. culaSparseSetDcooData 기능...)

2)에 관해서는 완전히 명확하지 않습니다.귀하의 질문이 "0이 아닌" 값인지 여부에 관한 것이라면 5월 (실제로는) 다음과 같은 값을 갖습니다. 0.0, 그러면 다음과 같이 말할 수 있습니다.예, 이는 허용되어야 합니다.그러나 이미 언급한 예에서는 간단한 테스트 매트릭스를 만드는 방법을 보여줍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top