How to use the prod function on non-zero elements?

I have a matrix with zeros in its main diagonal. I would like to take the product of the elements in each row (excluding the 0) so as to get a column vector. How can I make it using a vectorized code? E.g.
A = [0 1 2; 2 0 4; 7 8 0];
I want to get:
[1*2; 2*4; 7*8]
Thank you.

 Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 28 Mär. 2014
Bearbeitet: Azzi Abdelmalek am 28 Mär. 2014
A = [0 1 2; 2 0 4; 7 8 0];
B=A
B(~A)=1 % replace 0 elements by 1
out=prod(B,2)

1 Kommentar

How stupid I am! I should have thought of it. Thank you very much.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by