簡體   English   中英

自動字符串和數字串聯

[英]automating string and number concatenation

我在自動化matlab腳本時遇到了一些麻煩,該腳本會提示用戶輸入他們感興趣的變量以及他們想要的日期范圍。 然后,我希望腳本在它們最終將要加載的文件的命名約定中連接他們的答案。

variable = input('請輸入感興趣的輸入變量');

溫度百分比

start = input('請以yymmdd:'的形式聲明開始日期;

%130418

enddate = input('請以yymmdd:'的形式聲明結束日期;

%140418

文件= sprintf的( '%s_dailydata_%D_%d.csv',變量,啟動,結束日期);

所以我認為“文件”看起來像是:temp_dailydata_130418_140418.csv

VARDATA =負載(文件);

這兩個代表日期的數字不會引起任何問題,但是“變量”是一個字符串的事實卻是這樣。 我知道如果在提示時在'temp'之前和之后放置撇號,它將起作用,但是我必須假設最終用戶不知道這樣做。 我試着在“請輸入您的變量..”周圍加上花括號,但這也無濟於事。 顯然,此方法假定請求的日期存在於文件名中。 誰能提供任何建議? 也許sprintf函數不是這里的最佳選擇?

不要將“ end”用作變量名,它是保留名,使用它可能會與您定義的任何功能或邏輯塊產生沖突。

如果您知道您的輸入將是字符串,請參見: input()文檔

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

至於要知道文件是否存在,那是您必須合並一些錯誤邏輯的原因。 可以通過load()調用try / catch塊,也可以使用uigetfile()來獲取文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM