2014-07-10 24 views
3

我正在使用Matlab打印一個用於運行GrADS命令的小文本文件(temp_script.exec)。該腳本如下所示:使用GrADS腳本編寫Matlab fprint函數

'reinit' 
'open temp_ctl.ctl' 
'set lon -100 -80' 
'set lat 20 30' 
'define prc = var' 
'set sdfwrite data_out.nc' 
'sdfwrite prc' 

腳本通過cshell稱爲:

#!/bin/csh -f 
grads -lbc << EOF 
temp_script.exec 
EOF 
exit 

腳本似乎正確執行,但不產生輸出(data_out.nc)。奇怪的是,如果我使用VI編輯它並替換第一個字符 - 命令「reinit」之前的單引號 - 通過鍵入另一個單引號,然後重新運行腳本,數據生成正確。

我的問題是,有什麼不同?這些腳本在幾個不同的文本編輯器中看起來是相同的,但「修改」腳本(通過鍵入)大1個字節。我正在使用「fprintf」函數在Matlab中生成單引號。這可能是該功能的一些問題嗎?

感謝您的閱讀。

回答

0

要查看這些文件實際上是同一個(生成的一個和一個與vi編輯):

od -c -t x1 temp_script.exec > temp_script.lis 
od -c -t x1 vi_script.exec > vi_script.lis 
diff exec_script.lis vi_script.lis 

有可能是UNICODE BOM在文件的開頭,或在缺少換行符導致您的問題的文件的結尾。