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

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)

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

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!
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.

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!!!

Asked:

on 15 Dec 2013

Commented:

on 15 Dec 2013

Community Treasure Hunt

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

Start Hunting!