Unable to create text file for output

function opt = output2file(opt, state, pop, type, varargin)
% Function: opt = output2file(opt, state, pop, type, varargin)
% Description: Output the population 'pop' to file. The file name is
% specified by 'opt.outputfile' field.
% Parameters:
% type : output type. -1 = the last call, close the opened file.
% others(or no exist) = normal output
% varargin : any parameter define in the options.outputfuns cell array.
%
% LSSSSWC, NWPU
% Revision: 1.2 Data: 2011-07-13
%*************************************************************************
if(isempty(opt.outputfile))
return; % the output file name is not specified, return directly
end
if( isfield(opt, 'outputfileFID') )
fid = opt.outputfileFID;
else
fid = [];
end
%*************************************************************************
% 1.Open the output file and output some population info
%*************************************************************************
if( isempty(fid) )
fid = fopen(opt.outputfile, 'pops.txt', 'w');
if( fid == 0)
error('NSGA2:OutputFileError', 'Can not open output file!! file name:%s', opt.outputfile);
end
opt.outputfileFID = fid;
% Output some infomation
fprintf(fid, '#NSGA2\r\n');
% fprintf(fid, 'popsize %d\r\n', opt.popsize);
fprintf(fid, 'maxGen %d\r\n', opt.maxGen);
fprintf(fid, 'numVar %d\r\n', opt.numVar);
fprintf(fid, 'numObj %d\r\n', opt.numObj);
fprintf(fid, 'numCons %d\r\n', opt.numCons);
% Output state field names
fprintf(fid, 'stateFieldNames\t');
names = fieldnames(state);
for i = 1:length(names)
fprintf(fid, '%s\t', names{i});
end
fprintf(fid, '\r\n');
fprintf(fid, '#end\r\n\r\n\r\n');
end
%*************************************************************************
% 2. If this is the last call, close the output file
%*************************************************************************
if(type == -1)
fclose(fid);
rmfield(opt, 'outputfileFID');
return
end
%*************************************************************************
% 3. Output population to file
%*************************************************************************
fprintf(fid, '#Generation %d / %d\r\n', state.currentGen, opt.maxGen);
% output each state field
names = fieldnames(state);
for i = 1:length(names)
fprintf(fid, '%s\t%g\r\n', names{i}, getfield(state, names{i}));
end
fprintf(fid, '#end\r\n');
for i = 1:opt.numVar
fprintf(fid, 'Var%d\t', i);
end
for i = 1:opt.numObj
fprintf(fid, 'Obj%d\t', i);
end
for i = 1:opt.numCons
fprintf(fid, 'Cons%d\t', i);
end
fprintf(fid, '\r\n');
vertcat(result.pops(end,:).var);
for p = 1 : opt.popsize
for i = 1:opt.numVar
fprintf(fid, '%g\t', pop(p).var(i) );
end
for i = 1:opt.numObj
fprintf(fid, '%g\t', pop(p).obj(i) );
end
for i = 1:opt.numCons
fprintf(fid, '%g\t', pop(p).cons(i));
end
fprintf(fid, '\r\n');
end
fprintf(fid, '\r\n\r\n\r\n');
I am using this program for creating the output of MATLAB in text file. But I am not getting. I changed my code but unable to do so and getting result in graphical form which is not sufficient. Please help to get me out of this... Thanks

Respuestas (1)

ES
ES el 27 de Jul. de 2017

0 votos

Are you closing the file (by calling the function with type = -1)?

1 comentario

Paridhi Rai
Paridhi Rai el 27 de Jul. de 2017
No. I tried _ type poulations.txt_, but of no use

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB en Centro de ayuda y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

el 27 de Jul. de 2017

Comentada:

el 27 de Jul. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by