与此问题类似:
Can a Matlab PARFOR loop be programmatically switched on/off?
我想知道我是否可以使用类似的常规for循环。不幸的是,我现在实际上没有Matlab的工作副本,因此我无法在自己的代码中测试它!
if (flag)
for i = 1:n
else
parfor i = 1:n
end
% Do loop tasks.
end
编辑 -
(经过进一步的反思,我在我的问题中加入了更多细节)
这就是我目前所拥有的:
for i = 1:numel(Ffi)
Ff = Ffi(i)
for j = 1:numel(RelToli)
RelTol = RelToli(j)
for k = 1:numel(ki)
k=ki(k)
% solve
end
end
end
我想更改它,以便用户可以直接选择Ff / RelTol / k的单个值(通过GUI /请求的输入),或者,如果用户未指定,则使用预定义数组中的所有值(分别为Ffi / RelToli / ki)通过for循环。
答案 0 :(得分:2)
我很确定这不起作用。但这会:
for i = 1:(flag*n + ~flag)
所以查看(flag*n + ~flag)
,如果flag为true,它将等于n
(即1*n + 0
),如果flag为false则等于1
({{1} })
修改强>
有关更新的问题:
如果用户输入值,则设置标志,然后
0*n + 1
现在:
if flag
F = Ff; %//i.e. user input scalar
else
F = Ffi; %//i.e. Whole vector
end
答案 1 :(得分:1)
这个怎么样?
if flag
limit = n;
else
limit = 1;
end
for i = 1:limit
...
end