if f*g = h and I knew the given h and g how would I find f in matlab? Would I used a deconvolution program? Thanks

2 visualizzazioni (ultimi 30 giorni)
if f*g = h and I knew the given h and g how would I find f in matlab? Would I used a deconvolution program? Also is there a least square program in matlaB? or a wiener deconvolution program?
Thanks

Risposte (2)

Image Analyst
Image Analyst il 15 Dic 2013
Use matrix "division". Try this demo:
f=rand(4,3)
g = rand(3,5)
h=f*g
f2 = h / g % f2 will be the same as f
  3 Commenti
Cheryl
Cheryl il 15 Dic 2013
Modificato: Walter Roberson il 15 Dic 2013
f=[0 0 0 0 1 0 0.5 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0];%function f
h1=[ 2.76077e-006 0.000746586 0.0407636 0.449702 1.02038 0.673993 0.540762
0.225414 0.0211304 0.0411355 0.44933 1 0.449329 0.040762 0.000746586
2.76077e-006 0 0 0 0 0 0 0 0]; function h
many thanks!
Image Analyst
Image Analyst il 15 Dic 2013
You can't put h on different lines if there aren't the same number of elements on each line because it wants to put them into rows of a 2D matrix. Use the continuation symbols ... like this:
h1=[ 2.76077e-006 0.000746586 0.0407636 0.449702 1.02038 0.673993 0.540762,...
0.225414 0.0211304 0.0411355 0.44933 1 0.449329 0.040762 0.000746586,...
2.76077e-006 0 0 0 0 0 0 0 0] % function h

Accedi per commentare.


Cheryl
Cheryl il 15 Dic 2013
When I tried this method, I got the following error using my data set. Any clue as to how to resolve this?
Error using vertcat CAT arguments dimensions are not consistent.
Many thanks!!!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by