【发布时间】:2019-09-03 10:55:41
【问题描述】:
我有一些图像文件。我正在尝试使用每个文件执行一些计算,如果满足某个条件,我想回到代码中的特定行并从那里再次运行它。但只是再一次。无论第二次是否满足if条件,我都想进行下一次迭代。但是,MATLAB 似乎没有 goto 函数,而且,使用 goto 意味着糟糕的编程,所以我想我只需为满足 if 条件的特定 'i' 值迭代 for 循环两次。
file = dir('*.jpg');
n = length(file);
for i = 1:n
*perform some operations on the 'i'th file*
if 'condition'
*run the for loop again for the 'i'th file instead of going to the 'i+1'th file*
i=i-1;
else
*go to next iteration*
end
end
我试图通过将循环内的循环变量“i”更改为“i-1”来编写此代码,这样在下一次迭代中,“第 i 个循环”将再次重复,但这样做会给出错误输出,虽然我不知道我的代码中是否还有其他错误,或者内部循环变量的更改是否是问题的原因。对此的任何帮助表示赞赏。
【问题讨论】:
-
MATLAB for 循环不适用于增量,它会遍历您在顶部创建的列表
1:n。所以在循环内更改i对下一次迭代没有影响。
标签: matlab for-loop if-statement conditional goto