使用 dir 和 fullfile 创建一个有效的文件名
Creating a valid filename with dir and fullfile
我在我的代码中保留 运行 这个错误:
Path = 'C:\Users606\OneDrive\Documents\Spheroids For Brandon\Spheroids-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)
该代码试图遍历 main 的多个子文件夹中的多个图像。目标是为每个文件使用边缘检测算法处理图像,但这不是重点。为什么在代码中指定了路径、内容和子文件夹时,程序会给出一个无效的文件名?提到的变量与错误有什么关系吗?最后,有没有更好的迭代打开和读取图像的方法?
按顺序读取文件确实通常是通过循环 dir()
调用来完成的,即您的策略是有效的。这里出了什么问题, Path
是目录路径,而不是文件路径。 SubFold
然后只有 目录 ,因为它们在 Path
上找到。 fullfile(Path, SubFold(k).name)
最终创建了 Path
的子目录的路径。子目录不是文件,因此 fopen
会告诉您这是一个不正确的文件名。
您可能需要另一个 dir()
电话,例如dir(F)
获取 F
.
指定路径上的所有 文件
我在我的代码中保留 运行 这个错误:
Path = 'C:\Users606\OneDrive\Documents\Spheroids For Brandon\Spheroids-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)
该代码试图遍历 main 的多个子文件夹中的多个图像。目标是为每个文件使用边缘检测算法处理图像,但这不是重点。为什么在代码中指定了路径、内容和子文件夹时,程序会给出一个无效的文件名?提到的变量与错误有什么关系吗?最后,有没有更好的迭代打开和读取图像的方法?
按顺序读取文件确实通常是通过循环 dir()
调用来完成的,即您的策略是有效的。这里出了什么问题, Path
是目录路径,而不是文件路径。 SubFold
然后只有 目录 ,因为它们在 Path
上找到。 fullfile(Path, SubFold(k).name)
最终创建了 Path
的子目录的路径。子目录不是文件,因此 fopen
会告诉您这是一个不正确的文件名。
您可能需要另一个 dir()
电话,例如dir(F)
获取 F
.