Getting 'Argument must contain string error' error when saving, it's always worked before

Here is a short piece of my code.
queue = '\Q0';
Case = '\02';
path = 'D:\Data';
folder4Mfiles = strcat(path,'\Raw',queue,Case); % this corresponds to a location on my computer, I've never had trouble saving with this folder name before
cd(folder4Mfiles)
filename = sprintf('E%d.dat',ti); % Set filename as the E file of current time step
disp('E file is loading') % just what we call the files, they are just .dat format
InputData=load(filename); % Load the E file of current time step
disp('E file is done loading')
M = 352;
N = 92;
P = 352;
X = reshape(InputData(:,1),M,N,P);
save([folder4Mfiles,'\Position_File.mat'],X)
But now I get this error.
Error using save
Argument must contain a string.
I don't understand? [folder4Mfiles,'\Position_File.mat'] is a string

 採用された回答

Geoff Hayes
Geoff Hayes 2019 年 2 月 18 日
編集済み: Geoff Hayes 2019 年 2 月 18 日
Nathaniel - perhaps the error is with the second input parameter
save([folder4Mfiles,'\Position_File.mat'],X)
where you should be passing the name of the variable to save rather than the variable itself. In that case, the above would become
save([folder4Mfiles,'\Position_File.mat'],'X')
Also, consider using fullfile to build your path with filename like
save(fullfile(folder4Mfiles,'Position_File.mat'),'X')

1 件のコメント

Nathaniel H Werner
Nathaniel H Werner 2019 年 2 月 18 日
It looks like both you and Jan gave the same answer, off by a minute. It's been a while since I've used this code, so I think this is a case of forgetting some of the syntax rules.
As to whether to use the variable 'path' or not, I think to be safe I will just call it Path or PATH or some other rendition of the name moving forward.
Thank you!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Environment and Settings についてさらに検索

製品

リリース

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by