2012-07-16 20 views
-3

我可以讀一行行下面的文本文件,但是,我怎麼能150值更改爲在下面的文本文件的第13行顯示出一些其他值:如何在Matlab中通過此文本文件更改第13行的常量?

    Parameters for GAM 
        ****************** 

START OF PARAMETERS: 
GAM_inputfile_3D_gslib_format.dat -file with data 
1 1      - number of variables, column numbers 
-1.0e21  1.0e21     - trimming limits 
gamSpatiotemporal_gslib.out   -file for variogram output 
1        -grid or realization number 
100 1.0 1.0     -nx, xmn, xsiz 
100 1.0 1.0     -ny, ymn, ysiz 
20 1.0 1.0     -nz, zmn, zsiz 
4 150       -number of directions, number of lags 
1 5 5       -ixd(1),iyd(1),izd(1) 
2 5 5       -ixd(2),iyd(2),izd(2) 
3 5 5       -ixd(3),iyd(3),izd(3) 
4 5 5       -ixd(4),iyd(4),izd(4) 
1        -standardize sill? (0=no, 1=yes) 
1        -number of variograms 
1 1 1      -tail variable, head variable, variogram type 


type 1 = traditional semivariogram 
    2 = traditional cross semivariogram 
    3 = covariance 
    4 = correlogram 
    5 = general relative semivariogram 
    6 = pairwise relative semivariogram 
    7 = semivariogram of logarithms 
    8 = semimadogram 
    9 = indicator semivariogram - continuous 
    10= indicator semivariogram - categorical 
+0

我可以讀取數據行明智的,但我正在努力如何編輯該行,並重新寫在同一個文件。 – Pupil 2012-07-16 23:46:16

+0

在matlab中心有一個相當不錯的線程,請參見[這裏](http://www.google.com/search?q=matlab%20replace%20string%20in%20text%20file)第一擊。應該讓你開始。 – Thor 2012-07-16 23:54:53

+0

將一個'override'開關添加到將會替換變量的解析函數是否更有意義? – bdecaf 2012-07-17 09:10:50

回答

2

這不是一個優雅的答案,但我認爲這會奏效。

打開文本文件,在前12行讀入並使用fprintf將它們輸出到另一個文本文件。 (使用fopen製作新文件)

然後,請閱讀第13行,並使用它來構建您想要的新行。將新行輸出到文件。這是你如何做到這一點的例子。

newLine=strrep(originalLine,'150','New Number Here'); 

文件建立在strrep:http://www.mathworks.com/help/techdoc/ref/strrep.html

接下來,在剩餘的行並將其輸出到文本文件閱讀不變。

最後,保存文件超過原有的擴展名相同。

+0

第14行,你的意思是第13行嗎?我想改變第13行的內容。你能否告訴我應該使用哪個函數將行輸出到另一個文本文件?謝謝! – Pupil 2012-07-16 22:58:40

+0

看到我修改後的答案。 – chessofnerd 2012-07-17 06:00:18

相關問題