Creating file names for save command

I have the following code:
file_dir = 'C:\Users\mydir';
datestamp=string(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
file_name=strcat(file_dir,'sps_',datestamp,'.mat');
save(file_name);
which returns the following error:
Error using save
Argument must contain a character vector.
Not sure how to fix this?

2 件のコメント

Paul Nel
Paul Nel 2016 年 10 月 6 日
Also tried this modification with out success. Same error although it does appear to generate a character vector..
file_name=sscanf(strcat(file_dir,'sps_',datestamp,'.mat'),'%s');
Nagabhushan SN
Nagabhushan SN 2018 年 8 月 25 日
Same error:
save('temp.mat', data);
Error using save
Must be a string scalar or character vector.

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

回答 (2 件)

KSSV
KSSV 2016 年 10 月 6 日
編集済み: KSSV 2016 年 10 月 6 日

1 投票

You have to put some data in the file....
file_dir = pwd;
datestamp=string(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
file_name=strcat(file_dir,filesep,'sps_',datestamp,'.mat');
data = rand(10,10) ;
save(file_name,'data');

5 件のコメント

Paul Nel
Paul Nel 2016 年 10 月 6 日
Unfortunately this is not the problem. As I see it the problem seems to be with the data type of the file name which I struggle to convert to a character vector.
KSSV
KSSV 2016 年 10 月 6 日
Yes it is a warning....
Try:
datestamp=char(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
instead of
datestamp=string(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
Paul Nel
Paul Nel 2016 年 10 月 6 日
Same result unfortunately
KSSV
KSSV 2016 年 10 月 6 日
How about replacing:
file_name=strcat(file_dir,filesep,'sps_',datestamp,'.mat');
with
file_name=char(strcat(file_dir,filesep,'sps_',datestamp,'.mat'));
Jan
Jan 2016 年 10 月 6 日
Prefer fullfile to join path and file names.

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

Thorsten
Thorsten 2016 年 10 月 6 日
編集済み: Thorsten 2016 年 10 月 6 日

0 投票

file_dir = 'C:\Users\mydir';
datestamp=char(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
file_name=strcat(file_dir,'sps_',datestamp,'.mat');
>> whos file_name
Name Size Bytes Class Attributes
file_name 1x37 74 char
This works for me.

カテゴリ

タグ

質問済み:

2016 年 10 月 6 日

コメント済み:

2018 年 8 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by