gusucode.com > 精通Matlab数字图像处理与识别源码程序 > 精通Matlab数字图像处理与识别源码程序/chapter15/code/FaceRec/exportLibSVM/export.m

    function export(strMat, strLibSVM)
% 将以参数 strMat 指定的文件中的数据导出为能够被 LibSVM 使用的格式,生成的文件名由参数 strLibSVM 指定
%
% 输入:strMat --- 源文件名(包括路径),'.mat'文件,默认为'../Mat/trainData.mat',其中必须包含训练数据
%                  TrainData 和类标签 trainLabel,该文件可在训练 SVM 过程中生成
%       strLibSVM --- 目标文件名(包括路径),'.txt'文件,默认为'trainData.txt'

if nargin < 1
    strMat = '../Mat/trainData.mat';
    strLibSVM = 'trainData.txt';
elseif nargin < 2
    strLibSVM = 'trainData.txt';
end

[fid, fMsg ] = fopen(strLibSVM, 'w'); % 建立目标输出文件
if fid == -1
    disp(fMsg );
    return
end

strNewLine = [13 10]; % 换行
strBlank = ' ';
    
load(strMat)

[nSamp, nDim] = size( TrainData );


for iSamp = 1:nSamp
    fwrite(fid, num2str(trainLabel(iSamp)), 'char');
    
    for iDim = 1:nDim
        fwrite(fid, strBlank, 'char');
        fwrite(fid, [num2str(iDim) ':'], 'char');
        fwrite(fid, num2str(TrainData(iSamp, iDim)), 'char');        
    end
    
    fwrite(fid, strNewLine, 'char');
end



fclose(fid);