assign values from logial vector to a new matrix with the same size

1 view (last 30 days)
james berry
james berry on 25 Feb 2018
Answered: Jos (10584) on 8 Mar 2018
function B = functionA(A)
B = zeros(size(A));
D= A>0;
B = A(D);
I want to assign the values of A that met the condition (>0) to a matrix B of the same size as A. I wand a matrix B with zeros, the same size as A and the values of matrix A. Does anyone has a hint how to do this?

Answers (2)

Arthur Goldsipe
Arthur Goldsipe on 7 Mar 2018
Edited: Arthur Goldsipe on 8 Mar 2018
You can use an indexing variable like D on both the left and right side of an assignment. If I understand your questions, you can get what you want by changing the last line of your sample code to the following:
B(D) = A(D);

Jos (10584)
Jos (10584) on 8 Mar 2018
function B = functionA(A)
B = A
B(~(A>0)) = 0


Community Treasure Hunt

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

Start Hunting!