avarage of diagonal elements
8 views (last 30 days)
Show older comments
Write a Matlab function that calculates the average of the elements of the diagonal of a matrix M.
Be careful, before doing this calculation, your function must check if M is a scalar, a vector or a
matrix. In case it is a scalar or a vector, it must return 0
Answers (1)
Adam Danz
on 3 May 2021
Edited: Adam Danz
on 3 May 2021
Since this appears to be an assignment I can help by explaining what's wrong and nudging you in the right direction.
Two errors in this line:
ave=b./size(A)
1) The size function returns the number of rows in the first output. If A is a square matrix, that's OK but if A is not square, it's very wrong. A is probablly square since you need the diagonal buy why not play it safer by using the number of elements in b instead of the number of rows in A? See numel().
2. That line is computing element-wise division instead of the computing the mean. "./" vs "/"
Also, you don't need any of the loops.
3 Comments
Adam Danz
on 3 May 2021
Like I said, I can point you in the right direction but I won't do it for you.
You don't need the loops. You only need the lines within the loops.
Look at what this line does, look at the output
b = diag(A)
That's what you need to average.
See Also
Categories
Find more on Creating and Concatenating 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!