Arrays exercise Maximum and Minimum values

2 views (last 30 days)
Lenin Cruz
Lenin Cruz on 30 Aug 2019
Edited: Stephen23 on 30 Aug 2019
Hello,
I have this array
A=[1;0;0;4;5;6]
I want to get the maximum and minimum difference between the elements
MaxDiff= max(diff(A));
MinDiff= min(diff(A));
I would like to omit 'zero' in the calculations, so my output look like the two lines below. Which is not possible with the piece of code above
MaxDiff= 5
MinDiff= 1
Is there any way to do that without changing the size of my matrix A? it should be always 6 for future applications.
Thanks

Answers (1)

Stephen23
Stephen23 on 30 Aug 2019
Edited: Stephen23 on 30 Aug 2019
>> B = nonzeros(A(:));
>> M = bsxfun(@minus,B,B.');
>> V = abs(M(~eye(numel(B))));
>> max(V)
ans = 5
>> min(V)
ans = 1

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!