avarage of diagonal elements

12 ビュー (過去 30 日間)
Mustafa Ahmed
Mustafa Ahmed 2021 年 5 月 3 日
コメント済み: Mustafa Ahmed 2021 年 5 月 3 日
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
  1 件のコメント
Mustafa Ahmed
Mustafa Ahmed 2021 年 5 月 3 日
i did like that ,,,, but it is not enough and did not work
function ave = average(A)
if ismatrix(A)
[r,c] = size(A);
for i=1:r
for j=1:c
b = diag(A)
ave=b./size(A)
end
end
end

サインインしてコメントする。

回答 (1 件)

Adam Danz
Adam Danz 2021 年 5 月 3 日
編集済み: Adam Danz 2021 年 5 月 3 日
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 件のコメント
Adam Danz
Adam Danz 2021 年 5 月 3 日
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.
Mustafa Ahmed
Mustafa Ahmed 2021 年 5 月 3 日
thank you

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by