2016-01-20 53 views
0

我正在嘗試將ascii文件加載到包含1020行和兩列光譜數據的Matlab中。當我使用dlmread像下面,MATLAB輪流到這個矩陣N,這正是我想要的:dlmread命令

N = dlmread('alummatrix.asc') 

不過,我希望它只讀前80行數據而忽略其他,然後做這適用於目錄中的所有.asc文件。 另外,我希望十進制數不要改變或四捨五入。它將原始數據左側的數據輸出5位十進制數字。另外,我想它保留其原有的符號,而不是輪:

它給我:

N = 
    1.0e+05 * 
    0.0384 0.3374 

當我只是希望它顯示出來,如:

N = 
    3838  33738 
+0

你的問題是與MATLAB格式化輸出數字的方式。重複的鏈接應該可以幫助你解決這個問題。 'tl; dr' - 在命令提示符中輸入'format long g;',然後再次嘗試您的代碼。 – rayryeng

+0

謝謝!這工作。但是,如何讓它只讀取前80行數據並忽略其餘部分呢?然後對dir中的所有ascii文件執行此操作,將每個文件保存爲不同的矩陣名稱? – Svet

+0

(1)對於'dlmread',這是可能的,但你需要知道每個文件中有多少列。如果您不知道這一點,或者每個文件中的列數都是可變的,那麼您沒有選擇,只能讀取整個矩陣,然後刪除不想要的行。 (2)爲您的原始問題不包含多個文件。請編輯您的問題,以便您指定要解決的所有問題,然後重新打開。 – rayryeng

回答

0

使用這行代碼:

N = dlmread('alummatrix.asc','',[0 0 80 0]);

祝你好運!