2 unknowns in matching datasets
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Asliddin Komilov
el 25 de Abr. de 2022
Comentada: Asliddin Komilov
el 25 de Abr. de 2022
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 comentarios
Respuesta aceptada
DGM
el 25 de Abr. de 2022
Editada: DGM
el 25 de Abr. de 2022
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 comentarios
DGM
el 25 de Abr. de 2022
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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Sources en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!