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 views (last 30 days)
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

Answers (2)

Image Analyst
Image Analyst on 15 Dec 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 Comments
Cheryl
Cheryl on 15 Dec 2013
Edited: Walter Roberson on 15 Dec 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 on 15 Dec 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

Sign in to comment.


Cheryl
Cheryl on 15 Dec 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!