2012-11-06 2 views
2

Octave (Windows 플랫폼)에서 libsvm을 사용하고 싶습니다. readme 파일과 수십 개의 인터넷 게시물을 잘 이해하면 을 만들거나 컴파일 할 필요가 없습니다. mexw32 및 mexw64 파일을 Octave 작업 디렉토리으로 복사하십시오. 내가 이렇게하면 아무 일도 발생하지 오류가 내 샘플 코드를 실행할 때 이전과 동일 : 나는 너무 옥타브의 명령 프롬프트에서 make를 실행하려고했습니다Octave에서 libsvm 사용 (Windows)

error: `libsvmread' undefined near line 7 column 11 

을하지만 본인은있어 오류 :

warning: unable to find mkoctfile in expected location: `c:\Program Files (x86)\ 
Octave-3.6.2\bin\mkoctfile-3.6.2' 
warning: mkoctfile exited with failure status 

그러나이 지정된 디렉토리에서 mkoctfile-3.6.2.exe이다가 ...

는 이미 너무 octaverc 파일을 편집하는 것을 시도했다 ... 그러나 그것은 'didn를 도와 줘.

libsvm을 올바르게 설치하는 방법에 대한 아이디어가 있으십니까?

답변

2

LIBSVM 배포본의 matlab 하위 폴더에있는 README 파일 (3.13 참조)에 따르면 포함 된 바이너리는 Windows의 Matlab 64 비트 버전에만 해당됩니다. 이 바이너리는 Windows 용 Octave 버전에서 제대로 작동하지 않았습니다! LIBSVM에서 Octave를 사용하려면 Octave 관련 .mex 파일을 만들어 Octave에서 찾아야합니다.

이 과정의 둘러보기를 http://flyingpies.wordpress.com/2012/11/20/getting-libsvm-to-work-with-octave-on-windows/에 모았습니다. 간단히 말해서, 단계가 있습니다 : 당신이 옥타브의 Windows 버전의 Visual Studio에 내장되어 있는지

  1. 이 확인 (. 즉, Cygwin에서 나와 Mingw 아니다) 내가 특정 비교 단계를 해요 이러한 다른 촬영 할 수 있습니다 버전, 나는 그들을 밖으로 시도하지 않았다.

  2. Visual Studio 2010 또는 2012 복사본을 구하십시오. 저에게 잘 맞았습니다. 커다란 패키지에서 명령 행 C 컴파일러와 링커 만 있으면됩니다. express version of VS is available for free from Microsoft, 나는 그것을 시도하지는 않았지만.

  3. 명령 프롬프트 창에서 Visual Studio의 Visual C 폴더에서 vcvarsall.bat 배치 파일을 실행하여 컴파일 할 환경을 준비합니다.

  4. Octave bin 폴더를 경로 (내 컴퓨터의 C:\Program Files (x86)\Octave-3.6.2\bin)에 추가하십시오. 이 문제는 발생한 mkoctfile 문제를 해결합니다.

  5. Octave의 math.h 파일을 편집하면 Visual Studio의 math.h의 정확한 위치를 참조 할 수 있습니다. c:\Program Files (x86)\Octave-3.6.2\include\math.h의 74 행을 c:/Program Files/Microsoft Visual Studio 10.0/VC/include/math.h에서 c:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/include/math.h으로 변경해야했습니다.

  6. vcvarsall 및 경로 Octave로 시작하는 동일한 명령 프롬프트 창에서 LIBSVM 배포의 matlab 하위 폴더로 이동하고 make 명령을 실행하십시오. 그러면 .mex 파일을 빌드 할 해당 폴더의 make.m 파일이 실행됩니다.

  7. .mxt 파일을 Octave가 찾을 수있는 폴더로 복사하십시오. 나는 그들을 C:\Program Files (x86)\Octave-3.6.2\lib\octave\3.6.2\site\oct\i686-pc-mingw32에 넣었다.

이 시점에서 Octave를 시작하면 LIBSVM 인터페이스 명령을 사용할 수 있어야합니다.예를 들어, svmtrain 명령을 실행해야합니다.