7

http://www.cis.upenn.edu/~jshi/software/Ncut_9.zip (Windows 7)の正規化されたカット パッケージを使用しています。

これは、Matlab2010a で問題なく動作していました。ただし、Matlab2013a (32 ビット学生版) にアップグレードしたところ、次のエラーが発生しました。

Error using arpackc
Expect 2 output arguments

Error in eigs_new (line 240)
        arpackc( aupdfun, ido, ...

Error in ncut (line 83)
[vbar,s,convergence] =
eigs_new(@mex_w_times_x_symmetric,size(P,1),nbEigenValues,'LA',options,tril(P));

Error in ncutW (line 9)
[NcutEigenvectors,NcutEigenvalues] =
ncut(W,nbcluster);

Error in NcutImage (line 18)
[NcutDiscrete,NcutEigenvectors,NcutEigenvalues]
= ncutW(W,nbSegments);

Error in demoNcutImage (line 25)
[SegLabel,NcutDiscrete,NcutEigenvectors,NcutEigenvalues,W,imageEdges]=
NcutImage(I,nbSegments);

明らかに、new_eigs()関数ncutsは最新の Matlab の ARPACK バージョンと互換性がありません。

  • これに対する回避策を知っている人はいますか?
  • eigs()Normalized は、Matlab の関数の修正版を使用します。eigs()代わりにMatlabのビルトインを使用できないのはなぜですかeigs_new()(動作しているようです)。
4

3 に答える 3

5

matlab2014a 64 ビット ウィンドウでは、変更するのは

[vbar,s,convergence] = eigs_new(@mex_w_times_x_symmetric,size(P,1),nbEigenValues,'LA',options,tril(P));

ncut.m の 81 行目に

[vbar,s,convergence] = eigs(@mex_w_times_x_symmetric,size(P,1),nbEigenValues,'LA',options,tril(P));

そして、 eigs_new.m は役に立たず、気にしません。2014 年 (または 2009 年以降) に arpackc が eigs に置き換えられたためです。さらにヘルプが必要な場合は、eigs のヘルプを参照してください。

于 2014-12-22T03:59:24.767 に答える