0
큰 희소 행렬 및 작은 희소 행렬로 작업하고 있습니다.명령이 실패하면 다른 기능을 실행하십시오.
이제 eig
명령은 희박한 행렬 (sprand
사용시)에서 작동하지 않으므로 eigs
을 사용해야합니다.
하지만 사용하는 매트릭스에 따라 둘 다 사용해야하는 스크립트가 있습니다. 두 개의 동일한 스크립트가있을 수 있습니다. 하나는 eig
이고 다른 하나는 eigs
(및 5,6 < => N-1, N)입니다. 그러나이 문제를 해결하는 방법을 알고 싶습니다.
다음은 내 스크립트의 시작입니다.
f=eigs(A); % was eig
figure(1)
semilogy(res) %
convfact = abs(f(5))/abs(f(6)); % 5,6 was N-1 and N respectively
hold on
semilogy(convfact.^(1:k),'r--')
나는 또한 코드의 주석이 말한대로, 나는
eig
명령을 사용하고 경우에 대해 지적하고 싶습니다
, 5와 6은 N-1 및 N.했다 그러나 분명히 MATLAB는 수 0000x0000 행렬에서이 값을 찾을 수 있으므로 eigs
이 제공하는 5와 6을 사용해야합니다.
이 문제를 해결하는 방법에 대한 조언은 정말 감사하겠습니다.
정확히 무엇을 요구하고 있는지 확실하지 않습니다. 그러나 당신은 어떤 종류의 행렬을 테스트하기 위해'if' 문을 사용해 보았습니까? 그런 다음 해당 명령을 사용합니까? 제목에서 보면 'try-catch'블록을 사용하여 처리 할 수도 있지만 아마도이 방법이 최선의 방법은 아닙니다. –