"Can't open file " C:MATLAB 中" for reading; you may not have read permission."错误



我有这样一个代码;

for x = 1:100
    path = sprintf('C:Usershasan_000DocumentsMATLABProjectImages%d.jpg', x);
    imgarray = imread(sprintf(path));
end

我有一个包含100张照片的文件夹。我想通过循环自动上传把它们转换成矩阵。

但是我得到这个错误:

无法打开文件"C:"读取;
您可能没有读权限。

我该如何解决这个问题?

谢谢,

代码应该输出警告:

"警告:转义序列'U'无效。参见'help sprintf'获取有效的转义序列。"

使用sprintf时需要转义。你的代码是pathC:。有关如何正确转义的示例,请查看sprintf的文档。相反,我将使用以下代码:

P=fullfile('C:Usershasan_000DocumentsMATLABProjectImages',sprintf('%d.jpg',x))
imgarray = imread(P);

sprintf('C:\Users\hasan_000\Documents\MATLAB\Project\Images\%d.jpg', x);应该能解决这个问题。

sprintf("% % d %年代","C: hasan_000 MATLAB文件 项目用户图像 ',x, . jpg);

是我的建议,因为它使代码更直观和可读性。

sprintf不喜欢文件名中的反斜杠,因为它可能是特定命令的一部分。如果您简单地运行路径文件,您将看到:

path = sprintf('C:Usershasan_000DocumentsMATLABProjectImages%d.jpg', 1);

path = C:

这就是你的代码出错的地方。我目前没有坐在windows机器上,但我会尝试将斜杠从反斜杠反转到正常的/,看看它是否可以打开。

第二个方法肯定有效:

path = ['C:Usershasan_000DocumentsMATLABProjectImages', sprintf('%d.jpg', x)]

path = C:Usershasan_000DocumentsMATLABProjectImages1.jpg

相关内容

最新更新