String 自动字符串和数字连接

String 自动字符串和数字连接,string,matlab,printf,String,Matlab,Printf,我在自动化matlab脚本时遇到了一些问题,该脚本会提示用户输入他们感兴趣的变量以及他们想要的日期范围。然后,我希望脚本将它们的答案连接到它们最终加载的文件的命名约定中 变量=输入(“请输入感兴趣的变量”) %临时工 开始=输入('请以yymmdd:'的形式说明开始日期') %130418 enddate=输入('请以yymmdd:'的形式说明结束日期') %140418 文件=sprintf(“%s\u dailydata\u%d\u%d.csv”,变量,开始,结束日期) %所以我认为“文件”

我在自动化matlab脚本时遇到了一些问题,该脚本会提示用户输入他们感兴趣的变量以及他们想要的日期范围。然后,我希望脚本将它们的答案连接到它们最终加载的文件的命名约定中

变量=输入(“请输入感兴趣的变量”)

%临时工

开始=输入('请以yymmdd:'的形式说明开始日期')

%130418

enddate=输入('请以yymmdd:'的形式说明结束日期')

%140418

文件=sprintf(“%s\u dailydata\u%d\u%d.csv”,变量,开始,结束日期)

%所以我认为“文件”应该是:temp_dailydata_130418_140418.csv

vardata=加载(文件)

表示日期的两个数字没有引起任何问题,但“变量”是字符串这一事实是错误的。我知道如果我在被推荐时在“temp”前后加上撇号,它会起作用,但我必须假设最终用户不知道该怎么做。我试着在“请输入您的变量…”周围加上大括号,但也没用。显然,这种方法假定请求的日期存在于文件名中。
有人能提供一些建议吗?也许sprintf函数不是这里的最佳选项?

不要将“end”用作变量名,它是一个保留名称,使用它可能会与您定义的任何函数或逻辑块产生冲突

如果您知道您的输入将是一个字符串:从

str=input(提示,'s')
以MATLAB字符串形式返回输入的文本,不计算表达式。

至于知道文件是否存在,这是您必须结合一些错误逻辑来实现的。您可以使用
load()
调用创建一个块,也可以使用该块获取文件名。

谢谢,这非常有效。我将看看你提出的两个建议:文件是否存在。