Matlab 如果文件不';不存在?
tarfilename包含需要导入的所有文件的名称。某些文件可能不存在。如何跳过不存在的文件,使循环不会因此错误而停止:Matlab 如果文件不';不存在?,matlab,import,Matlab,Import,tarfilename包含需要导入的所有文件的名称。某些文件可能不存在。如何跳过不存在的文件,使循环不会因此错误而停止: Error using imread (line 349) File "C:\Users\xyz.tif" does not exist. 代码: 如果存在(名称为“文件”)如果存在文件,则返回2;如果存在文件夹,则返回7 很抱歉,目前没有matlab可以为您编写和测试完整的代码 我想应该是这样的: for m = 1:length(tarFileNames) if
Error using imread (line 349)
File "C:\Users\xyz.tif" does not exist.
代码:
如果存在(名称为“文件”)
如果存在文件,则返回2;如果存在文件夹,则返回7
很抱歉,目前没有matlab可以为您编写和测试完整的代码
我想应该是这样的:
for m = 1:length(tarFileNames)
if exists(tarFileNames{m}, 'file')
tarConus = imread(tarFileNames{m});
tarConus(end,:) = []; % Dropping last col and row from each page
tarConus(:,end) = [];
tarAccum = plus(tarConus(select),tarAccum);
else
end
end
您可以使用检查文件是否存在。请确保指定第二个输入参数,该参数指定只查找该名称的文件
%// Determine all of the files that don't exist.
doesExist = cellfun(@(x)exist(x, 'file') == 2, tarFileNames);
%// File which do not exist
invalidNames = tarFileNames(~doesExist);
%// File which do exist
validNames = tarFileNames(doesExist);
%// Only loop through the ones that do exist
for m = 1:numel(validNames)
tarConus = imread(validNames{m});
tarConus(end,:) = []; % Dropping last col and row from each page
tarConus(:,end) = [];
tarAccum = plus(tarConus(select),tarAccum);
end
exist()
可以检查文件是否存在。这应该做到:
for m = 1:length(tarFileNames)
if exist(tarFileNames{m}, 'file')
tarConus = imread(tarFileNames{m});
tarConus(end,:) = []; % Dropping last col and row from each page
tarConus(:,end) = [];
tarAccum = plus(tarConus(select),tarAccum);
end
end
谢谢如何获取已跳过的文件列表?您可以使用
else
语句(在第一个end
之前)将当前的tarFileNames{m}
字符串存储到单元格或类似内容中。谢谢!我猜这在计算上比下面的解决方案更有效(这对我来说很重要,因为数据集很大)?另外,我可以得到一个被跳过的文件列表吗?@maximudooku更新。
for m = 1:length(tarFileNames)
if exist(tarFileNames{m}, 'file')
tarConus = imread(tarFileNames{m});
tarConus(end,:) = []; % Dropping last col and row from each page
tarConus(:,end) = [];
tarAccum = plus(tarConus(select),tarAccum);
end
end