作者IceAmy (....)
看板MATLAB
标题[问题] 回圈中某个点有error可否跳过此往下算?
时间Thu Jul 4 11:56:16 2013
各位前辈好
目前写的程序会出现以下问题,恳请指教:
每个i会代入运算形成一个矩阵A,
而我要对A进行一个求伪逆(指令pinv)的动作,
而pinv的算法会用到SVD(指令SVD)进行分解
但有些i因为数据本身的关系会出现求伪逆的error:
Error using svd
SVD did not converge.
Error in pinv (line 29)
[U,S,V] = svd(A,0);
我想在这些点出现error时,跳过这些点继续运算输出我要的B(请参考下方例子)
可行吗?
例子:
for i = 1:500
A = function1(i);
P = pinv(A);
B = function2(P);
saveB(i,:)=B;
end
目前我都是手动在他跳出error时,手动跳过这些样本
例如i=1:500,i=100 跳出error,我让他跑i=1:99,再跑i=101:500
可是我的数据&参数有满多的,每组参数出现error的点都不同,不可能一直手动跳过
请问要怎麽自动的跳过这些error的点?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.129.110
1F:→ IceAmy:自问自答,用判断语句 try...catch...end 好像可以解决 07/04 14:32
2F:→ jatj:yes, try and catch 07/05 07:43