我一直在我的代碼中遇到這個錯誤:
Path = 'C:\Users\18606\OneDrive\Documents\Spheroids For Brandon\Spheroids\1-8WT';
Content = dir(Path);
SubFold = Content([Content.isdir]); % Keep only the directories
MyData = [];
for k = 3:length(SubFold)
F = fullfile(Path, SubFold(k).name);
fileID = fopen(F);
MyData{end 1} = fopen(fileID,'%s\n');
fclose(fileID);
導致錯誤:
Error using fopen
Invalid filename (line 8)
該代碼試圖迭代主檔案夾中的多個子檔案夾中的多個影像。目標是使用每個檔案的邊緣檢測演算法處理影像,但這不是重點。當路徑、內容和子檔案夾都在代碼中指定時,為什么程式會給出無效的檔案名?提到的變數是否與錯誤有關?最后,有沒有更好的方法來迭代地打開和讀取影像?
uj5u.com熱心網友回復:
順序讀取檔案確實通常通過回圈dir()呼叫來完成,即您的策略是有效的。這里出了什么問題,這Path是目錄的路徑,而不是檔案。SubFold然后只是目錄,因為它們在Path. fullfile(Path, SubFold(k).name)最后創建一個到 . 的子目錄的路徑Path。子目錄不是檔案,因此fopen會告訴您它的檔案名不正確。
您可能需要另一個dir()呼叫,例如dir(F)獲取.指定路徑上的所有檔案F。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/479875.html
上一篇:Matlab設定輸入范圍和步長
