LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Implementation of a non-negative matrix factorization

Hello,
I wanted to ask if anyone has worked on an implementation of a non-negative matrix factorization in Labview? I need some food for thought.
I use version 18.042 (64-bit)
Thanks a lot
Marco

0 Kudos
Message 1 of 5
(2,621 Views)

What are You trying to do?

 

Linear Algebra is pretty much solved by now. There are enough linear algebra packages around so that noone needs to reinvent the wheel. Or do You just want to enjoy recreational mathematics?

0 Kudos
Message 2 of 5
(2,612 Views)

The beauty is that LabVIEW has probably all the linear algebra you possibly need, so if you have a certain published algorithm in mind, you can just implement it. Does it exist in other programming languages already? Do you have a link to a website or publication that shows what you want to do?

 

A non-negativity constraint is not trivial and you often need iterative algorithms and some other tricks.

 

For example, long ago I wrote a non-negative Tikhonov regularization that works quite well for solving certain inverse problems and is very fast (used here to determine distance distributions from dipolar EPR pulse spectroscopy data).

 

What kind of problem are you trying to solve? Can you give us a little background information? How big are the matrices?

0 Kudos
Message 3 of 5
(2,594 Views)

Thanks for your quick response. My problem is described in the attached picture. V is the input matrix (my measurements) and should be "reduced" to W and H. I already tried the standard singular value decomposition tool and additionally I have expressed the problem as least square fit. Unfortunately, this also results partly in negative values for W and H, which in my case are not physical. I just don't know how to make W and H positive only. I would like to solve the problem in Labview and not pass it to another program, because it has many advantages in the lab.

Many thanks

 

Bild1.png

0 Kudos
Message 4 of 5
(2,530 Views)

I believe that @altenbach was, just as I am, interested in the reason why You want to decompose the matrix, to prevent running into an XY problem.

 

I also want to clarify that in my first response, I was not suggesting You do not use LabVIEW at all, but as an interface between Your program and an already existing, proven solution. To see how this could work, have a look at the inner workings of the LabVIEW SVD function (or any other of the linear algebra functions).

 

Have You decided on an algorithm yet? There is quite a list in the Wikipedia article on Non-negative matrix factorization.

0 Kudos
Message 5 of 5
(2,501 Views)