1
我有有這樣的行的文本文件:閱讀2號和跳過2號在Matlab
206,8,157,8,118,8,205,8,151,8,160,8,126,8,244,8,139,8,166,8,164,8,154,8,177,8,118,8,161,8,180,8,201,8,156,8
我想讀的最初2號,跳過接下來的2號,看了下2數字等等放入一個數組中。由於文本文件很大,Matlab不能將所有數據保存在內存中,所以我一次只讀一行。該文本文件也可能有一些其他文本內容,我忽略了使用正則表達式。我的不完整的代碼如下:
fileID = fopen('4.dat'); %Open file
line= fgets(fileID); %read first line
testArray=[]; %Temporary array which will be appended to main array
I=[]; %Main array
while ischar(line)
fromX = regexp(line,'(\d*\,\d*\,){2,}','match'); %Find 2 consecutive numbers delimited by ","
fromXMat = cell2mat(fromX); %Convert to matrix
fromXMatNum = str2num(fromXMat); %Convert to numbers from string
testArray = fromXMatNum(1:2:numel(fromXMatNum)); %Read every 2nd number
I = [I,testArray]; %Append to main array
end
我也試過textscan,但沒有得到想要的結果。我想要下面的輸出:
Input: 206,8,157,8,118,8,205,8,151,8,160,8,126,8,244,8,139,8,166,8,164,8,154,8,177,8,118,8,161,8,180,8,201,8,156,8,
Output: 206,8,118,8,151,8,126,8,139,8,164,8,177,8,161,8,201,8
感謝您的幫助。
謝謝非常。這是一個非常優雅的解決方案。 – Sarvavyapi