如果命令失败,则运行不同的功能

时间:2014-02-12 11:18:57

标签: matlab matrix eigenvalue

我正在使用大型稀疏矩阵和小稀疏矩阵。

现在,eig命令不适用于稀疏矩阵(使用sprand时),因此我必须使用eigs

但我有一个脚本,需要根据我正在使用的矩阵使用两者。我可以有两个相同的脚本,一个eig另一个eigs(和5,6&lt; =&gt; N-1,N),但我想知道如何解决这个问题。< / p>

这是我的剧本的开始。

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个。

任何解决这个问题的建议都会很棒,谢谢。

1 个答案:

答案 0 :(得分:1)

简单的if / else块有什么问题?

if issparse(A)
    f = eigs(A);
else
    f = eig(A);
end