[問題] 迴圈中某個點有error可否跳過此往下算?

看板MATLAB作者 (....)時間12年前 (2013/07/04 11:56), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
各位前輩好 目前寫的程序會出現以下問題,懇請指教: 每個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

07/04 14:32, , 1F
自問自答,用判斷語句 try...catch...end 好像可以解決
07/04 14:32, 1F

07/05 07:43, , 2F
yes, try and catch
07/05 07:43, 2F
文章代碼(AID): #1HrF9a_y (MATLAB)