Problem with defining a path to a MATLAB function

I've got a problem in defining a path in load_untouch_nii function. My code looks like this:
%define the path to the current folder
path = ('~/Desktop/Data/pat01_t1/');
%load the nifti images
Brain = load_untouch_nii(path, 'Brain.nii');
When I try to run the above code I get the following error:
Error using load_nii_hdr (line 47)
Cannot find file "~/Desktop/Data/pat01_t1/.hdr".
Error in load_untouch_nii (line 103)
[nii.hdr,nii.filetype,nii.fileprefix,nii.machine] = load_nii_hdr(filename);
Error in Brain_segmentations (line 4)
data = load_untouch_nii(path, 'Brain.nii');
Can someone please help?

 Accepted Answer

P = '~/Desktop/Data/pat01_t1/'; % do NOT use PATH as a variable name.
Brain = load_untouch_nii(fullfile(P,'Brain.nii'));
Most likely the function you are calling requires the filename (whether absolute or relative) as one input argument, not two separate inputs.

1 Comment

Jan
Jan on 16 Dec 2022
Edited: Jan on 16 Dec 2022
Two brains - one thought. I love it.

Sign in to comment.

More Answers (1)

Maybe you mean:
folder = '~/Desktop/Data/pat01_t1/';
Brain = load_untouch_nii(fullfile(folder, 'Brain.nii'));
The first input is the file name, not just the folder. fullfile joins the names of the folder and the file.
Note that "path" is a bad choice for a variable, because this shadows an important built-in function. This can cause very strange side-effects during debugging.

Categories

Asked:

on 16 Dec 2022

Commented:

on 16 Dec 2022

Community Treasure Hunt

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

Start Hunting!