diff --git a/CanlabCore/Index_image_manip_tools/iimg_reconstruct_3dvol.m b/CanlabCore/Index_image_manip_tools/iimg_reconstruct_3dvol.m index c65261f2..58a83c66 100644 --- a/CanlabCore/Index_image_manip_tools/iimg_reconstruct_3dvol.m +++ b/CanlabCore/Index_image_manip_tools/iimg_reconstruct_3dvol.m @@ -129,9 +129,9 @@ function write_file(voldata, volInfo, outname, descrip, varargin) % correct .private loaded from file by re-mapping volume. spm_write_plane(spm_vol(volInfo.fname), voldata, slice_number); else - warning('off'); % empty images return many warnings + warnstate = warning('off', 'all'); % empty images return many warnings spm_write_vol(volInfo, voldata); - warning('on'); + warning(warnstate); end end @@ -149,7 +149,10 @@ function write_file(voldata, volInfo, outname, descrip, varargin) t = t(1); n1 = ext((t+1):end); if ~isempty(n1), - n = str2num(n1); + n = str2double(n1); + if isnan(n) + n = 1; % Fall back to 1 for non-numeric values + end ext = ext(1:(t-1)); end end diff --git a/CanlabCore/Index_image_manip_tools/iimg_reconstruct_vols.m b/CanlabCore/Index_image_manip_tools/iimg_reconstruct_vols.m index 3e77c855..3d5770b0 100644 --- a/CanlabCore/Index_image_manip_tools/iimg_reconstruct_vols.m +++ b/CanlabCore/Index_image_manip_tools/iimg_reconstruct_vols.m @@ -232,18 +232,18 @@ function write_file(voldata, volInfo, outname, descrip, varargin) % write one slice for a series of images slice_number = varargin{1}; - filenames = []; + filenames_cell = cell(nimgs, 1); for i = 1:nimgs - filenames = char(filenames, make_img_filename(outname, i)); + filenames_cell{i} = make_img_filename(outname, i); end - filenames = filenames(2:end, :); + filenames = char(filenames_cell); % Note: pinfo is set to [1 0 0] for new images; no rescaling of % images. scn_write_plane(filenames, voldata, slice_number, volInfo); else - warning('off'); % empty images return many warnings + warnstate = warning('off', 'all'); % empty images return many warnings for i = 1:nimgs [volInfo.fname, volInfo.n(1)] = make_img_filename(outname, i); volInfo.descrip = descrip; @@ -254,7 +254,7 @@ function write_file(voldata, volInfo, outname, descrip, varargin) spm_write_vol(volInfo, squeeze(voldata(:, :, :, i))); end - warning('on'); + warning(warnstate); end end @@ -278,7 +278,10 @@ function write_file(voldata, volInfo, outname, descrip, varargin) t = t(1); n1 = ext((t+1):end); if ~isempty(n1), - n = str2num(n1); + n = str2double(n1); + if isnan(n) + n = imagenum; % Fall back to imagenum for non-numeric values + end ext = ext(1:(t-1)); end else