当条件是数据加载成功时如何使用if语句?矩阵实验室

发布于 2024-12-11 04:53:24 字数 610 浏览 0 评论 0原文

因此,在循环中,我希望仅当该循环中的数据加载成功时才执行所有语句。否则我希望循环继续到下一次迭代。

       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,如果负载在该增量上不起作用,我希望循环基本上跳过所有操作并转到下一步。

谢谢你, 阿比德

So In a loop, I want all statements to be executed only if the load if data in that loop is successful. Else I want the loop to continue to the next iteration.

       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

As you can see I am incrementing by .5, and if the load doesn't work on that increment I want the loop to essentially skip all the operations and go to the next step.

Thank You,
Abid

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

演出会有结束 2024-12-18 04:53:24

在加载和处理之前检查文件是否存在:

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

Check if the files exists before loading and processing:

if exist(filename,'file')
    ...
end
何以心动 2024-12-18 04:53:24

我不太确定这一行:

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

I'm not quite certain of this line:

if H(x,y)= load( [...]); %# This tries to load dat file at x,y position in `H`

x and y seem unknown at the first loop iteration, then fallback to 50,50 (last index of subsequent loop).

You may try:

H = load( [...]); %# This tries to load dat file in `H`

if numel(H) ~= 0
  %# iterate over H
end
辞取 2024-12-18 04:53:24

您可以使用 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

You could use a TRY/CATCH block:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文