看板 MATLAB 關於我們 聯絡資訊
目標為一次讀取多個txt檔,並且對每個txt檔進行一些操作後輸出 當檔案名稱長度相同時,讀取多個檔案會成功; 當檔案名稱長度不一時,讀取多個檔案時textscan會失敗,error如下: Invalid file identifier. Use fopen to generate a valid file identifier. 請問如何解決?謝謝大家 ---------------------------------------------------------------------------- 參考程式碼如下: [filename, pathname] = uigetfile('.txt','Load Filename','MultiSelect','on') ; delimiter = '\t'; formatSpec = '%s%s%[^\n\r]'; for n=1:length(filename); %此時filename為cell之型式 F=strvcat(filename); %轉成char是為了方便後續存檔時製造檔案名稱 file=F(n,:); %令file=第n個檔案名稱 fileID = fopen((file),'r'); dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'EmptyValue' ,NaN, 'ReturnOnError', false); (下略) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.75.176 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1482311242.A.D96.html
sunev: 有記得fclose嗎? 12/21 17:16
sppmg: F(n,:) 文字長度不同矩陣會出錯。你應該一律用cell, 12/22 10:06
sppmg: 修正,應說不足的strvcat會補空格,你試試double(F(n,:)) 12/22 10:13
sppmg: 要轉文字用filename{n} 即可 12/22 10:14
xx013652: 成功了!!非常感謝! 12/26 15:30