Is it possible to skip for loop when error appears and replace the results with NaN?
3 次查看(过去 30 天)
显示 更早的评论
I have a 3D matrix ( Auto) and in which I am fitting the Auto(p,q,:) elements using a for a loop. I am calculating one parameter ( D(p,q)=fit1.D) from the fitting. However, due to some reason ( Complex value computed by model function, fitting cannot continue), fitting is not happening for some p,q and hence the for loop terminated. Here I want to put D(p,q)=NaN when the fitting gives the error and want to proceed for next loop.
Thanks in advance for your help.
l2= size(Auto);
for p=1:l2(1)
for q=1:l2(2)
y=reshape(Auto(p,q,2:end),[],1);
x=(0:0.5:(35-1)*0.5)';
f = fittype('(A./(sqrt(1+ ((x*D)./(0.251.^2)))))');
fit1 = fit(x,y,f,'StartPoint',[0.1 0.1 ]);
D(p,q)=fit1.D;
% D(p,q)=NaN;
end
end
0 个评论
采纳的回答
James Tursa
2018-7-11
Something like this?
try
% your fitting stuff goes here
D(p,q) = fit1.D;
catch
D(p,q) = NaN;
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!