저는 820 개의 선을 포함하는 희소 매트릭스 파일이 있습니다. 파일의 몇 줄의 샘플은 다음과 같습니다 :스파 스가 아닌 대각선 배열의 색인이 반대로 된 이유는 무엇입니까?
0 547 1
1 547 1
2 539 0.500000
2 540 0.500000
3 512 0.333333
3 515 0.333333
이 희소 매트릭스 파일을 Matlab으로 가져오고 싶습니다. 파일에 포함 된 전체 행렬에는 1184 개의 행과 같은 수의 열이 있습니다. 희소 행렬로이 파일을 변환하려면, 나는 다음과 같은 명령을 사용합니다
"??? 오류가 사용 : 이전
첫째T = reshape(T,3,entries)'; disp('Array is: '); A = (sparse(T(:,1)+1, T(:,2)+1, T(:,3), rows , cols));
및 인덱스에 1을 추가, 오류가있는 표시됩니다 ==>에 희소 행렬 지수가 양이어야한다.
그것은 MATLAB이 때문는 문제가 해결 될 때 +1을 가하고 있지 인덱스 0
에서, 인덱스 1에서 시작한다. 01 23,516,하지만 지금, iwhenI는 대각 행렬은이 코드
A = (sparse(T(:,1)+1, T(:,2)+1, T(:,3), rows , cols));
를 실행, 출력이 우수하고, 긍정적 인 인덱스의 문제는 해결됩니다. 그러나 비대 각형 행렬을 사용하려고하면 출력이 반전됩니다. 내 말은 (1,500) = 3,67이 아니라 (500,1) = 3,67이된다는 뜻입니다. 왜 Matlab이 그렇게합니까?
예, 그 후 내가 반전 된 배열을 계산하기 원하는 문제가 될 것으로 보인다과 솔루션은 바람직하지 않다 . 내 코드에 오류가 있다고 생각합니까? –
@Obito, 공식 프로그램 이름을 수정하는 데 시간을 보내는 경우 적어도 [MATLAB] (https://en.wikipedia.org/wiki/MATLAB)을 올바르게 사용하십시오. – Adriaan
@Adriaan 쿨, 고마워. – Obito