看板 MATLAB 關於我們 聯絡資訊
各位前輩好 目前寫的程序會出現以下問題,懇請指教: 每個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
IceAmy:自問自答,用判斷語句 try...catch...end 好像可以解決 07/04 14:32
jatj:yes, try and catch 07/05 07:43