MATLAB:如何比较行,列和对角线?

时间:2015-02-19 17:55:17

标签: matlab math matrix

我需要能够检查行,列和对角线的总和是否在矩阵中彼此相等。我已经尝试了我能想到的一切,没有任何结果。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

当您对矩阵使用sum时,它将给出列的总和。可以重复该操作以转置'a'。如果我没有误解你的问题,可以找到对角线的diag函数和'a(sqrt(end):sqrt(end)-1:end-1)'。 代码如下:

a = [1 2 3; 4 5 6; 7 8 9]; %%Let 'a' given matrix
if(sum(diag(a)) == sum(a(sqrt(end):sqrt(end)-1:end-1)))%% anti diagonal vs diagonal
    disp('Diagonals are equal')
end
rows     = sum(a');
if(all(rows==rows(1))) %% rows 
    disp('Rows are equal')
end
columns = sum(a);
if(all(columns==columns(1))) %% columns
    disp('Columns are equal')
end