2 unknowns in matching datasets
1 回表示 (過去 30 日間)
古いコメントを表示
Hello everyone.
I have 3 sets of data and need to find "a" and "b":
Y1=a*Y2+b*Y3;
there are 2 unknowns so I would need 2 equations to solve this but maybe there is a way to solve this as is? Help please.
Thank you
0 件のコメント
採用された回答
DGM
2022 年 4 月 25 日
編集済み: DGM
2022 年 4 月 25 日
I'm sure there are other ways, but:
load datasett.mat
% omit nans
nanmask = ~(isnan(Y1) | isnan(Y2) | isnan(Y3));
Y1 = Y1(nanmask);
Y2 = Y2(nanmask);
Y3 = Y3(nanmask);
% when overdefined, mldivide returns the least-squares solution
ab = [Y2 Y3]\Y1
That said, I'm not sure it's going to be good enough to just blindly process the data. Y1 doesn't look like the linear combination of Y2 and Y3 (at least it doesn't respond events in Y2).
Y1est = [Y2 Y3]*ab; % assume that Y1 is a linear combination
subplot(2,1,1)
plot(Y2); hold on
plot(Y3)
subplot(2,1,2)
plot(Y1); hold on
plot(Y1est)
Some sort of preprocessing is probably warranted here.
3 件のコメント
DGM
2022 年 4 月 25 日
If the data is taken at face value, Y1 isn't a linear combination of Y2 and Y3. That should be visually apparent just by looking at the graphs.
If the underlying system is expected to be linear, then you'll have to find an appropriate way to deal with the noise events in Y1 and Y2. I'm not sure what would be appropriate. You might try omitting outliers, filling them, or smoothing them.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Fourier Analysis and Filtering についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!