function xy2svmlight(data,file_name)
% XY2SVMLIGHT Converts data set to SVM^{light} format.
%
% Synopsis:
% xy2svmlight(data,file_name).
%
% Description:
% This function saves training data to text file required
% by the SVM^{light} software.
%
% Input:
% data.X [dim x num_data] training data stored as column vectors.
% data.y [1 x num_data] labels of traning data; possible values
% are 1 (first class) and 2 (second class).
%
% Output:
% Text file 'file_name' in SVM^{Light} format.
%
% See also SVMLIGHT.
%
% About: Statistical Pattern Recognition Toolbox
% (C) 1999-2003, Written by Vojtech Franc and Vaclav Hlavac
% <a href="http://www.cvut.cz">Czech Technical University Prague</a>
% <a href="http://www.feld.cvut.cz">Faculty of Electrical Engineering</a>
% <a href="http://cmp.felk.cvut.cz">Center for Machine Perception</a>
% Modifications:
% 14-Jan-2003, VF
% 30-apr-2001, V. Franc, created
fid = fopen( file_name, 'w+');
dim=size(data.X,1);
num_data=size(data.X,2);
txt = zeros(1,2*dim);
inx1 = 1:2:2*dim;
txt(inx1) = 1:dim;
inx2 = 2:2:2*dim;
for i=1:num_data,
if data.y(i) == 1,
fprintf(fid,'+1 ');
elseif data.y(i) == 2,
fprintf(fid,'-1 ');
else
fprintf(fid,'0 ');
end
txt(inx2) = data.X(:,i);
fprintf( fid, '%d:%f ', txt );
fprintf(fid,'\n');
end
fclose(fid);
return;