Как использовать оператор if, если условие является успешной загрузкой данных? MatLab
Поэтому в цикле я хочу, чтобы все операторы выполнялись только в случае успешной загрузки данных в этом цикле. Иначе я хочу, чтобы цикл продолжался до следующей итерации.
for l=1:.5:numfilesdata
if H(x,y)= load( ['C:\Users\Abid\Documents\MATLAB\Data\NumberedQwQoRuns\Run' num2str(t) '\Zdata' num2str(l) '.txt']);
%%%%%Converting Files
for x=1:50;
for y=1:50;
if H(x,y)<=Lim;
H(x,y)=0;
else
H(x,y)=1;
end
end
A(t,l)=(sum(sum(H))); %Area
R(t,l)=(4*A(t,l)/pi)^.5; %Radius
end
end
Как вы можете видеть, я увеличиваю на 0,5, и если нагрузка не работает с этим шагом, я хочу, чтобы цикл по существу пропустил все операции и перешел к следующему шагу.
Спасибо, Абид
3 ответа
Решение
Проверьте, существуют ли файлы перед загрузкой и обработкой:
if exist(filename,'file')
...
end
Я не совсем уверен в этой строке:
if H(x,y)= load( [...]); %# This tries to load dat file at x,y position in `H`
x и y кажутся неизвестными на первой итерации цикла, а затем возвращаются к 50,50 (последний индекс последующего цикла).
Вы можете попробовать:
H = load( [...]); %# This tries to load dat file in `H`
if numel(H) ~= 0
%# iterate over H
end
Вы можете использовать блок TRY/CATCH:
for i=1:10
try
H = load(sprintf('file%d.txt',i), '-ascii');
%# process data here ...
catch ME
fprintf('%s: %s\n', ME.identifier, ME.message)
continue
end
end