Remove zeros and perform calculation with non-zero elements

Hi,
I have a array of B with 403 elements (403 x 1). Some of the values are qual to zero but I want to remove the zeros from the array and perform a calculation with non-zero elements. After the calculation with non-zero elements, the new values need to be replaced with old values.
Can anybody help me how I can do it MATLAB?
Thanks,
Dumindu.

Answers (2)

Extract the elements in C where B is nonzero
D = C(B~=0)
Extract the nonzero elements of B into D
D = nonzeros(B)
Hint
B(not(B==0)) = perform_calculation( B(not(B==0)) );
where
function M2 = perform_calculation( M1 )
% calculations
end
If calculations use more variables make perform_calculation a nested function to make the variables of the caller available to calculations.

2 Comments

How can I select the non-zero elements of B to a different array?

Sign in to comment.

Asked:

on 2 Jun 2014

Commented:

on 2 Jun 2014

Community Treasure Hunt

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

Start Hunting!