自动化字符串和数字连接

时间:2014-04-18 13:21:22

标签: string matlab printf

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

  

变量=输入('请输入感兴趣的变量');

%temp

  

start = input('请以yymmdd形式说明开始日期:');

%130418

  

enddate = input('请以yymmdd形式说明结束日期:');

%140418

  

文件=的sprintf('%s_dailydata_%D_%d.csv',变量,启动,结束日期);

%所以我认为'文件'看起来像:temp_dailydata_130418_140418.csv

  

VARDATA =负载(文件);

表示日期的两个数字不会引起任何问题,但事实是'变量'是一个字符串是。我知道如果我在“临时”之前和之后都放了撇号。当我提出时,它会起作用,但我必须假设最终用户不知道这样做。我试着把花括号括起来,请输入你的变量..',但这也没有帮助。显然,这种方法假定请求的日期存在于文件名中。 有人可以提供任何建议吗?也许sprintf函数不是最好的选择吗?

1 个答案:

答案 0 :(得分:1)

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

如果您知道您的输入将是一个字符串:来自documentation for input()

str = input(prompt,'s') 
Returns the entered text as a MATLAB string, without evaluating expressions.

至于知道文件是否存在,那就是你必须要包含一些错误逻辑。通过load()来电try/catch阻止,或者您可以使用uigetfile()来获取文件名。