나는 다른 날에 얻은 두 개의 데이터 세트가 있습니다. 두 개의 다른 데이터 세트에서 얻은 결과는 모양은 비슷하지만 값이 다릅니다 (그림 1 참조). 두 번째 데이터 세트 (x2, y2)와 첫 번째 데이터 세트 (x1, y1)를 일치시키려는 시도입니다. 그림 2에서 y는 A x와 B입니다.MATLAB에서 두 곡선을 일치시키는 배율을 찾는 방법은 무엇입니까?
DATA1 : [- 0.3 : 0.06 : 2.1]
X1은 예컨대
';
Y1 = 0.001 0.001 0.004 0.014 0.052 0.166 0.330 0.416 0.340 0.247 0.194 0.197 0.237 0.330 0.428 0.542 0.669 0.767 0.855 0.900 0.913 0.904 0.873 0.811 0.765 0.694 0.631 0.585 0.514 0.449 0.398 0.351 0.309 0.273 0.233 0.211 0.182 0.154 0.137 0.117 0.101 ];
데이터 2
x2 = [- 0.3 : 0.06 : 2.1] '';
Y2 = 0.000 0.000 0.000 0.000 0.025 0.230 0.447 0.425 0.269 0.194 0.225 0.326 0.477 0.636 0.791 0.931 1.036 1.104 1.117 1.123 1.062 0.980 0.897 0.079 0.063 0.047 0.038 0.027 0.023 0.129 0.099 0.258 0.209 0.161 0.390 0.309 0.675 0.571 0.471 0.780.015 ] ';
는 스케일링 인자 & B 알아 보려면, I는 DATA1 및 X 변성 DATA2 간의 델타 Y를 최소화 B 획득에 대한 생각하고있다. 그러나 나는 A를 찾을 수있는 좋은 방법이 있습니다. A & B이 두 곡선을 일치시키는 방법은 무엇입니까? 어떤 도움이라도 대단히 감사합니다.
@ jonnat :이 게시물은 데이터 세트에 적합합니다. 하지만 난 하나의 질문을, 당신 fminunuc을 사용하면 어떻게 최소 범위 ([1,1])을 결정합니까? 내 다른 데이터 세트로 테스트 할 때 오류 메시지가 "= 28"을 사용하는 오류, ROOTS 입력에 NaN 또는 Inf가 없어야 함을 나타냅니다. " 어쩌면 이것의 원인을 아십니까? 당신의 도움을 주셔서 감사합니다. – tytamu
이 오류는 코드에서 연산이 유한 수가 아닌 NaN 또는 Inf를 생성했음을 의미합니다.fminunc에 대한 무제한 목적 함수 나 0으로 나누는 간단한 오류를 포함하여 많은 이유가있을 수 있습니다. 계수에 경계를 추가하려면 fminunc 대신 fmincon을 사용하십시오. NaN 또는 Inf가 생성 된 위치를 정확히 알고 싶다면 코드 시작 부분에'dbstop if naninf'를 사용하십시오. 그래도 문제를 찾을 수없는 경우 새로운 질문을 엽니 다. 마지막으로, 내 대답이 당신의 모범을 위해 작용했다면 다른 사람들이 그것이 잘 작동하도록 그것을 받아 들여주십시오. – foglerit