我正在處理大文件(30GB +)中的二進制數據。 我已經用自定義閱讀功能實現了fileDatastore。matlab高數組與循環實現
fds = fileDatastore(location,'ReadFcn',@readFile);
ReadFile函數讀取二進制數據到一個數組一次一個字節。 然後我從fileDatastore創建一個高數組。
data = tall(fds);
這一切似乎工作正常。現在我想通過高位數組搜索一個字節模式(例如25和30)。像...
for i=1:size(data)
if data(i) == 25 && data(i+1) == 30
disp('do something')
end
end
這似乎不可能。我最終得到'從高轉換爲邏輯不可能'的錯誤。我怎麼解決這個問題?
不直接相關,但你可能想要'1:numel(data)'而不是'1:size(data)' – Suever
我沒有工具箱來測試自己,但我會檢查'class (data(i)== 25)'和'doc relop'作爲線索。這是可能的,你需要'和'(只有一個而不是&&)來處理你正在處理的數據類型。 –
在「收集」數據之前,對「高」陣列的操作不會執行嗎?如果顯示'data(1)',你會看到文件中的值還是隻是一個'?'問號? – Justin