"Can't open file "C:"供阅读;您可能没有阅读权限。" MATLAB 中的错误
"Can't open file "C:" for reading; you may not have read permission." error in MATLAB
我有这样的代码;
for x = 1:100
path = sprintf('C:\Users\hasan_000\Documents\MATLAB\Project\Images\%d.jpg', x);
imgarray = imread(sprintf(path));
end
我有一个文件夹,里面有100张图片。我想通过循环自动上传将它们转换为矩阵。
但是我得到这个错误:
Can't open file "C:" for reading;
you may not have read permission.
我该如何解决这个问题?
谢谢,
代码应输出警告:
"Warning: Escape sequence '\U' is not valid. See 'help sprintf' for valid escape
sequences. "
使用 sprintf 时需要对 \
进行转义。使用您的代码 path
是 C:
。有关如何正确转义的示例,请查看 sprintf
的文档。相反,我会使用此代码:
P=fullfile('C:\Users\hasan_000\Documents\MATLAB\Project\Images',sprintf('%d.jpg',x))
imgarray = imread(P);
sprintf('C:\Users\hasan_000\Documents\MATLAB\Project\Images\%d.jpg', x);
应该可以解决问题。
sprintf('%s%d%s','C:\Users\hasan_000\Documents\MATLAB\Project\Images\',x,'.jpg');
是我的建议,因为它使代码更直观和可读。
sprintf
不喜欢文件名中的反斜杠 \
,因为它可能是特定命令的一部分。如果您只是 运行 您将看到的路径文件:
path = sprintf('C:\Users\hasan_000\Documents\MATLAB\Project\Images\%d.jpg', 1);
path = C:
这就是您的代码中断的地方。我目前不在 windows 机器上,但我会尝试将斜杠从反斜杠 \
反转为正常 /
并查看它是否可以打开它。
第二种方法肯定有效:
path = ['C:\Users\hasan_000\Documents\MATLAB\Project\Images\', sprintf('%d.jpg', x)]
path = C:\Users\hasan_000\Documents\MATLAB\Project\Images.jpg
我有这样的代码;
for x = 1:100
path = sprintf('C:\Users\hasan_000\Documents\MATLAB\Project\Images\%d.jpg', x);
imgarray = imread(sprintf(path));
end
我有一个文件夹,里面有100张图片。我想通过循环自动上传将它们转换为矩阵。
但是我得到这个错误:
Can't open file "C:" for reading;
you may not have read permission.
我该如何解决这个问题?
谢谢,
代码应输出警告:
"Warning: Escape sequence '\U' is not valid. See 'help sprintf' for valid escape sequences. "
使用 sprintf 时需要对 \
进行转义。使用您的代码 path
是 C:
。有关如何正确转义的示例,请查看 sprintf
的文档。相反,我会使用此代码:
P=fullfile('C:\Users\hasan_000\Documents\MATLAB\Project\Images',sprintf('%d.jpg',x))
imgarray = imread(P);
sprintf('C:\Users\hasan_000\Documents\MATLAB\Project\Images\%d.jpg', x);
应该可以解决问题。
sprintf('%s%d%s','C:\Users\hasan_000\Documents\MATLAB\Project\Images\',x,'.jpg');
是我的建议,因为它使代码更直观和可读。
sprintf
不喜欢文件名中的反斜杠 \
,因为它可能是特定命令的一部分。如果您只是 运行 您将看到的路径文件:
path = sprintf('C:\Users\hasan_000\Documents\MATLAB\Project\Images\%d.jpg', 1);
path = C:
这就是您的代码中断的地方。我目前不在 windows 机器上,但我会尝试将斜杠从反斜杠 \
反转为正常 /
并查看它是否可以打开它。
第二种方法肯定有效:
path = ['C:\Users\hasan_000\Documents\MATLAB\Project\Images\', sprintf('%d.jpg', x)]
path = C:\Users\hasan_000\Documents\MATLAB\Project\Images.jpg