Newton-Raphson 반복 방법을 사용하여 비선형 시스템 방정식을 풀려고하고 있으며 내 변수의 매개 변수 공간을 탐색하기 위해 이전 솔루션을 저장하는 것이 유용합니다. 내가 처음 유치한 추측으로 사용하여 내가 유역에 머무르게하십시오.논리 인덱스 및 배정 밀도 숫자
나는 현재에 대한 이런 식으로 나는 .mat 파일에 저장하는 구조 배열 내 솔루션을 저장합니다
load('solutions.mat','sol');
str = struct('a',Param1,'b',Param2,'solution',SolutionVector);
sol=[sol;str];
save('solutions.mat','sol');
을 지금, 또 다른 실행을하는 나는 다른에 대해 위의 솔루션이 필요합니다 매개 변수 NewParam1 및 NewParam2. Param1을 = NewParam1-deltaParam1, 및과 Param2 = NewParam2 경우 - 다음 deltaParam2,
load('solutions.mat','sol');
index = [sol.a]== NewParam1 - deltaParam1 & [sol.b]== NewParam2 - deltaParam2;
% logical index to find solution from first block
SolutionVector = sol(index).solution;
가끔 그런 솔루션이 존재하지 않는 없다는 오류 메시지가 표시됩니다. Matlab에서 2-1 ~ = 1이 발생할 수 있기 때문에 문제는 내 매개 변수의 이중 정밀도에 있습니다. 그러나 동일한 결과를 얻는 다른 방법을 찾을 수 없습니다. 저장 프로세스에서 숫자 매개 변수를 문자열로 변경하려고했지만 문자열로 논리적 색인을 생성 할 때 문제가 발생했습니다.
이상적으로, 필자의 매개 변수에 10의 거듭 제곱을 곱하여 정수로 만드는 것을 피하고 싶습니다. 이는 매개 변수의 수로 인해 코드를 이해하기가 어렵게 만듭니다. 그것 이외에, 어떤 도움도 크게 감사하겠습니다. 감사!
대신'=='을 사용하십시오. 왜 작은 여백을 유지하지 않으시겠습니까? 1e-10 (또는 'eps')라고 말하십시오. –