2013-12-11 2 views
1

CSV 파일을 LIBSVM/SVMlight 형식으로 변환하려고합니다. 다음 코드를 찾았습니다 :MATLAB : 'char'유형의 입력 인수에 대해 'libsvmwrite'함수가 정의되지 않았습니다.

SPECTF = csvread('SPECTF.train'); % read a csv file 
labels = SPECTF(:, 1); % labels from the 1st column 
features = SPECTF(:, 2:end); 
features_sparse = sparse(features); % features must be in a sparse matrix 
libsvmwrite('SPECTFlibsvm.train', labels, features_sparse); 

특정 파일의 Octave에서 사용했고 제대로 작동했습니다. MATLAB에 그것을 시도 할 때 그러나, 나는 오류가 발생 :

Undefined function 'libsvmwrite' for input arguments of type 'char'. 

어느 쪽도 "라벨은"나 (그들은 두 배입니다) ... 문자입니다 "features_sparse". 내 오류는 어디에 있습니까? 감사!

답변

2

libsvmwrite의 첫 번째 인수는 char 유형 (파일 이름 'SPECTFlibsvm.train')입니다. 나는 문제가 Matlab에 의해 주어진 오류 메시지에 있다고 생각한다. 오류 메시지는 함수가 char 유형의 입력에 존재하지 않는다고 말합니다. 그러나 Matlab이 OPP 언어로 설계된 경우에는 메시지가 전혀 존재하지 않아야합니다.

어쨌든 경로에 libsvmwrite 기능이 없거나 어떻게 든 libsvm 인터페이스의 설치가 엉망입니다.

+0

고맙습니다. @ carandraug, 당신이 옳았어요 : Windows XP OS에서 만든 'libsvmwrite'의 .mex 파일을 우연히 사용하고 있었는데, Windows 7 OS에서 실행 중이었습니다.;) – Cheshie

0

아마 c로 작성된 소스 코드 만로드했을 것입니다. 컴파일해야합니다. libsvm의 matlab 디렉토리로 이동하여 지시 사항을 읽으십시오.