Как использовать оператор if, если условие является успешной загрузкой данных?MatLab - PullRequest
0 голосов
/ 23 октября 2011

Итак, в цикле я хочу, чтобы все операторы выполнялись только в случае успешной загрузки данных в этом цикле.В противном случае я хочу, чтобы цикл продолжался до следующей итерации.

       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 ]

1 голос
/ 23 октября 2011

Я не совсем уверен в этой строке:

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
1 голос
/ 24 октября 2011

Вы можете использовать блок 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
1 голос
/ 23 октября 2011

Проверьте, существуют ли файлы перед загрузкой и обработкой:

if exist(filename,'file')
    ...
end
...