|
9 | 9 | % Copyright (C) 2008 Wellcome Trust Centre for Neuroimaging
|
10 | 10 |
|
11 | 11 | % Vladimir Litvak
|
12 |
| -% $Id: checkmeeg.m 4207 2011-02-22 10:48:36Z christophe $ |
| 12 | +% $Id: checkmeeg.m 4437 2011-08-23 13:09:24Z vladimir $ |
13 | 13 |
|
14 | 14 | if nargin==1
|
15 | 15 | option = 'basic';
|
|
191 | 191 | end
|
192 | 192 | end
|
193 | 193 |
|
| 194 | +if isfield(meegstruct, 'path') |
| 195 | + filepath = meegstruct.path; |
| 196 | +else |
| 197 | + filepath = pwd; |
| 198 | +end |
| 199 | + |
194 | 200 | if ~isfield(meegstruct, 'data') && (Nsamples~=0)
|
195 | 201 | disp('checkmeeg: no data field');
|
196 | 202 | return;
|
|
201 | 207 | disp('checkmeeg: data file name missing');
|
202 | 208 | return;
|
203 | 209 | else
|
204 |
| - [junk, fnamedat, ext] = fileparts(meegstruct.data.fnamedat); |
| 210 | + fname = meegstruct.data.fnamedat; |
| 211 | + if ~ispc, fname = strrep(fname,'\',filesep); end |
| 212 | + [junk, fnamedat, ext] = fileparts(fname); |
205 | 213 | if isempty(ext)
|
206 | 214 | meegstruct.data.fnamedat = [fnamedat '.dat'];
|
207 | 215 | else
|
|
220 | 228 | if isa(meegstruct.data.y, 'file_array')
|
221 | 229 | % catching up (unlikely case) where filearray.fname is
|
222 | 230 | % different from data.fnamedat -> set data.fnamedat
|
223 |
| - [junk, yfname, yext] = fileparts(meegstruct.data.y.fname); |
224 |
| - [junk, dfname, dext] = fileparts(meegstruct.data.fnamedat); |
| 231 | + fname = meegstruct.data.y.fname; |
| 232 | + if ~ispc, fname = strrep(fname,'\',filesep); end |
| 233 | + [junk, yfname, yext] = fileparts(fname); |
| 234 | + |
| 235 | + fnamedat = meegstruct.data.fnamedat; |
| 236 | + if ~ispc, fnamedat = strrep(fnamedat,'\',filesep); end |
| 237 | + [junk, dfname, dext] = fileparts(fnamedat); |
225 | 238 | if ~strcmp([yfname yext],[dfname dext])
|
226 | 239 | meegstruct.data.fnamedat = [yfname yext];
|
227 | 240 | end
|
| 241 | + |
| 242 | + meegstruct.data.y.fname = fullfile(filepath, [yfname yext]); |
| 243 | + |
228 | 244 | % save original file_array scale & offset, just in case
|
229 | 245 | sav_sc = meegstruct.data.y.scl_slope;
|
230 | 246 | sav_os = meegstruct.data.y.offset;
|
|
236 | 252 | end
|
237 | 253 | end
|
238 | 254 |
|
| 255 | + if isa(meegstruct.data.y, 'file_array') |
| 256 | + fn = meegstruct.data.y.fname; |
| 257 | + if ~ispc, fn = strrep(fn,'\',filesep); end |
| 258 | + else |
| 259 | + fn = ''; |
| 260 | + end |
239 | 261 | if ~isa(meegstruct.data.y, 'file_array') ...
|
240 |
| - || isempty(fileparts(meegstruct.data.y.fname)) ... |
| 262 | + || isempty(fileparts(fn)) ... |
241 | 263 | || ~exist(meegstruct.data.y.fname, 'file')
|
242 |
| - if isfield(meegstruct, 'path') |
243 |
| - filepath = meegstruct.path; |
244 |
| - else |
245 |
| - filepath = pwd; |
246 |
| - end |
247 | 264 | switch(meegstruct.transform.ID)
|
248 | 265 | case 'time'
|
249 | 266 | meegstruct.data.y = file_array(fullfile(filepath, meegstruct.data.fnamedat), ...
|
|
318 | 335 | end
|
319 | 336 |
|
320 | 337 | try
|
321 |
| - [pdat, fdat] = fileparts(meegstruct.data.y.fname); |
| 338 | + fname = meegstruct.data.y.fname; |
| 339 | + if ~ispc, fname = strrep(fname,'\',filesep); end |
| 340 | + [pdat, fdat] = fileparts(fname); |
322 | 341 | catch
|
323 | 342 | fdat = 'spm8';
|
324 | 343 | end
|
325 | 344 |
|
326 | 345 | if ~isfield(meegstruct, 'fname')
|
327 | 346 | meegstruct.fname = [fdat '.mat'];
|
328 | 347 | else
|
329 |
| - [p, f] = fileparts(meegstruct.fname); |
| 348 | + fname = meegstruct.fname; |
| 349 | + if ~ispc, fname = strrep(fname,'\',filesep); end |
| 350 | + [p, f] = fileparts(fname); |
330 | 351 | if isempty(f)
|
331 | 352 | f = fdat;
|
332 | 353 | end
|
|
335 | 356 |
|
336 | 357 | if ~isfield(meegstruct, 'path')
|
337 | 358 | try
|
338 |
| - meegstruct.path = fileparts(meegstruct.data.y.fname); |
| 359 | + fname = meegstruct.data.y.fname; |
| 360 | + if ~ispc, fname = strrep(fname,'\',filesep); end |
| 361 | + meegstruct.path = fileparts(fname); |
339 | 362 | catch
|
340 | 363 | meegstruct.path = pwd;
|
341 | 364 | end
|
|
440 | 463 |
|
441 | 464 | % Allow DCM on a pure LFP dataset
|
442 | 465 | if strcmp(option, 'dcm') && isempty([eegind(:); megind(:)])...
|
443 |
| - && ~isempty(lfpind)&& strcmp(meegstruct.transform.ID, 'time') |
| 466 | + && ~isempty(lfpind) && ismember(meegstruct.transform.ID, {'time', 'TF'}) |
444 | 467 | result = 1;
|
445 | 468 | return;
|
446 | 469 | end
|
|
0 commit comments