Too many input arguments with parfor loop
显示 更早的评论
trying to run this instruction
>> Iteration('Al',[100:25:175],1.33)
function Iteration(type,data,n)
tic
length1 = length(data);
switch type
case 'Al'
parfor i = 1:length1 % line:21
if exist(sprintf('%d.mat',data(i)), 'file')==0
Slambda_Al(data(i),n);
end
fprintf('%d of %d\n',i,length1);
end
I get this error if the current directory contains a ".m" file otherwise runs without errors.
Error using Iteration (line 21)
Too many input arguments.
7 个评论
Adel Sarhan
2019-4-19
Walter Roberson
2019-4-19
How many arguments does Slambda_Al accept?
Adel Sarhan
2019-4-19
Walter Roberson
2019-4-19
When you say that you get the problem when the directory contains a ".m" file, do you mean that you could set up a situation where the directory contained no .m files and the code would work, but if you were to create ThIsIsAnUnUsEdFiLe.m with empty content, then the parfor would fail ?
Adel Sarhan
2019-4-19
Walter Roberson
2019-4-19
For the purpose of debugging, try commenting out the SLambda_Al call, and instead displaying to i and n values, and seeing if the problem still happens. If it does not still happen then the problem would seem to be associated with the call to SLambda_Al , in which case you could try calling it with constant values like Slambda_al(1,1) and see if the problem still occurred.
I wonder if the problem is actually inside Slambda_al ?
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Parallel for-Loops (parfor) 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!