在幫助別人的同時提高自己,有人提到這個問題,給了我去探究的機會,將最終代碼做一下記錄。
問題描述:
現有一大矩陣存儲於某一txt文件末端,需要用導入matlab進行進一步的處理。這就需要略過前面很多無效行,如果采用傳統的fscanf未免有些麻煩,於是問題提出:matlab如何快速從文本文件指定行進行讀取?
function [out]=readData(path)
%從指定行開始讀取數據
%實際上主要是textscan的使用,查閱matlab對應的幫助文檔就清楚了
clear all;
fid=fopen(path,'r');
if fid<0
warndlg('打開文件失敗!');
return;
else
FormatString=repmat('%f ',1,18);
out =cell2mat(textscan(fid,FormatString,7373,'HeaderLines',174)); %從174行開始讀取7373*18的矩陣數據
end
msgbox('文件讀取成功!');
if fclose(fid)==0
msgbox('文件關閉成功!');
else
warndlg('關閉文件失敗!');
end
end