From 692837e8fb594d8cd09d60577b05062be509cedb Mon Sep 17 00:00:00 2001 From: Laura Nervo <laura.nervo@esrf.fr> Date: Thu, 22 Aug 2013 14:39:47 +0200 Subject: [PATCH] gtReadTextFile : added argument 'iscell2mat' to convert from cell to matrix Signed-off-by: Laura Nervo <laura.nervo@esrf.fr> --- zUtil_Cryst/gtCrystCalculateReflections.m | 4 ++-- .../gtCrystCalculateSymmetryOperators.m | 8 +++---- zUtil_Help/gtReadTextFile.m | 22 +++++++++++++------ 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/zUtil_Cryst/gtCrystCalculateReflections.m b/zUtil_Cryst/gtCrystCalculateReflections.m index 9f3d77b0..8d93746c 100644 --- a/zUtil_Cryst/gtCrystCalculateReflections.m +++ b/zUtil_Cryst/gtCrystCalculateReflections.m @@ -58,14 +58,14 @@ cmd = sprintf('%s %s %f %f %d %s %s', ... [~, msg] = gtPythonCommand(cmd, true); disp(msg); % read the full list of reflections -[~,Cmat] = gtReadTextFile([filename 'all.txt'],'%f %f %f %f',[1 3],'Delimiter','\n','CommentStyle','#'); +[~,Cmat] = gtReadTextFile([filename 'all.txt'],'%f %f %f %f',[1 3],true,'Delimiter','\n','CommentStyle','#'); % extracting information hklsp = Cmat(:,1:3); sinthlsp = Cmat(:,4); % read the full list of reflections -[~,Cmat] = gtReadTextFile([filename 'unique.txt'],'%f %f %f %f',[1 3],'Delimiter','\n','CommentStyle','#'); +[~,Cmat] = gtReadTextFile([filename 'unique.txt'],'%f %f %f %f',[1 3],true,'Delimiter','\n','CommentStyle','#'); % extracting information hkl = Cmat(:,1:3); diff --git a/zUtil_Cryst/gtCrystCalculateSymmetryOperators.m b/zUtil_Cryst/gtCrystCalculateSymmetryOperators.m index 102b398f..bc901923 100644 --- a/zUtil_Cryst/gtCrystCalculateSymmetryOperators.m +++ b/zUtil_Cryst/gtCrystCalculateSymmetryOperators.m @@ -44,10 +44,10 @@ script_file = fullfile(GT_MATLAB_HOME, 'zUtil_Python', 'symmetry_operators_list. disp(msg); % read produced files -permN = gtReadTextFile(['perm_' crystal_system '.txt'],'%f %f %f',[3 3],'Delimiter',' ','CommentStyle','#'); -rotN = gtReadTextFile(['rot_' crystal_system '.txt'],'%f %f %f',[3 3],'Delimiter',' ','CommentStyle','#'); -sg_rotN = gtReadTextFile(['sg_rot_' crystal_system '.txt'],'%f %f %f',[3 3],'Delimiter',' ','CommentStyle','#'); -sg_transN = gtReadTextFile(['sg_trans_' crystal_system '.txt'],'%f %f %f',[1 3],'Delimiter',' ','CommentStyle','#'); +permN = gtReadTextFile(['perm_' crystal_system '.txt'],'%f %f %f',[3 3],true,'Delimiter',' ','CommentStyle','#'); +rotN = gtReadTextFile(['rot_' crystal_system '.txt'],'%f %f %f',[3 3],true,'Delimiter',' ','CommentStyle','#'); +sg_rotN = gtReadTextFile(['sg_rot_' crystal_system '.txt'],'%f %f %f',[3 3],true,'Delimiter',' ','CommentStyle','#'); +sg_transN = gtReadTextFile(['sg_trans_' crystal_system '.txt'],'%f %f %f',[1 3],true,'Delimiter',' ','CommentStyle','#'); symm = struct('g3', rotN, 'perm', permN); if nargout == 2 diff --git a/zUtil_Help/gtReadTextFile.m b/zUtil_Help/gtReadTextFile.m index d16b6b7f..e4568f65 100644 --- a/zUtil_Help/gtReadTextFile.m +++ b/zUtil_Help/gtReadTextFile.m @@ -1,14 +1,15 @@ -function [Ccell,Cmat] = gtReadTextFile(filename, formatS, minsize, varargin) +function [Ccell,Cmat] = gtReadTextFile(filename, formatS, minsize, iscell2mat, varargin) % GTREADTEXTFILE Reads textfiles into matrices % -% [Ccell, Cmat] = gtReadTextFile(filename, formatS, minsize, varargin) -% ------------------------------------------------=------------------- +% [Ccell, Cmat] = gtReadTextFile(filename, formatS, minsize, iscell2mat, varargin) +% ------------------------------------------------=------------------------------- % % INPUT: % filename = text file to be read <string> % formatS = format pattern as in fprintf <string> i.e. '%f %f %f' % minsize = minimum size of element to be consider as object (like % matrix 3x3 or vector 1x3) +% iscell2mat = transform to matrix <logical> % varargin = optional argument for textscan % % OUTPUT: @@ -20,17 +21,24 @@ function [Ccell,Cmat] = gtReadTextFile(filename, formatS, minsize, varargin) % % Version 001 03-12-2012 by LNervo +if ~exist('iscell2mat','var') || isempty(iscell2mat) + iscell2mat = false; +end fid = fopen(filename,'r'); C = textscan(fid, formatS, varargin{:}); fclose(fid); -Cmat = cell2mat(C); +if iscell2mat + Cmat = cell2mat(C); -if minsize(1)>0 && minsize(2)>0 - for ii = 1 : size(Cmat,1)/minsize(1) - C{ii} = Cmat((ii-1)*minsize(1)+1:minsize(1)*ii,1:minsize(2)); + if minsize(1)>0 && minsize(2)>0 + for ii = 1 : size(Cmat,1)/minsize(1) + C{ii} = Cmat((ii-1)*minsize(1)+1:minsize(1)*ii,1:minsize(2)); + end end +else + Cmat = []; end Ccell = C; -- GitLab