khafi 发表于 2012-8-7 13:48

找出满足条件的所有矩阵并且输出

本帖最后由 大笨象 于 2012-8-7 14:34 编辑

有个n×n 矩阵元素只能为0或1  矩阵行列相同时的元素为0   矩阵所有元素和为n*(n-1)/2  求帮助

khafi 发表于 2012-8-7 13:51

本帖最后由 大笨象 于 2012-8-7 14:34 编辑

希望大家讨论

wish_豪 发表于 2012-8-7 14:09

这个简单吧,用个最简单的循环都可以做出来。。

khafi 发表于 2012-8-7 14:14

  求教。。。

大笨象 发表于 2012-8-7 14:36

把问题再描述的清楚一些。

大笨象 发表于 2012-8-7 14:36

把问题再描述的清楚一些。

wish_豪 发表于 2012-8-8 10:29

本帖最后由 wish_豪 于 2012-8-8 10:31 编辑

先判断是否为n*n矩阵,再判断元素和是否符合要求,再用diag提取主对角线元素,直接求其和,判断是否为0。最后循环判断每个元素是否为0或1

最后一步暂时不知不用循环能否做出来

wish_豪 发表于 2012-8-8 15:19

随便编写个 你试试
function panduan=duan(w)
%判断n阶矩阵
=size(w);
if a~=b
    disp('矩阵不是n阶矩阵');
    panduan=0;
    return
else
    panduan=1;
end
%判断元素和
if sum(w)~=a*(a-1)/2
    disp('元素和不符合要求');
    panduan=0;
    return
else
    panduan=1;
end
%判断主对角线元素和是否为0
if sum(diag(w))~=0
    disp('主对角线元素和不为0');
    panduan=0;
    return
else
    panduan=1;
end
for i=1:a
    for j=1:a
        if w(i,j)==0||w(i,j)==1
            panduan=1;
        else
            disp('元素不为0或1');
             panduan=0;
             return
        end
    end
end

khafi 发表于 2012-8-8 16:33

wish_豪 发表于 2012-8-8 15:19 static/image/common/back.gif
随便编写个 你试试
function panduan=duan(w)
%判断n阶矩阵


   你的回答非常感谢。不过我可能没表达清楚。不是判断是输出所有满足要求的矩阵。 比如如果是4阶矩阵      就是满足要求的我想把满足要求的全部找出来

wish_豪 发表于 2012-8-8 16:55

khafi 发表于 2012-8-8 16:33 static/image/common/back.gif
你的回答非常感谢。不过我可能没表达清楚。不是判断是输出所有满足要求的矩阵。 比如如果是4阶矩阵    ...

你这个问题估计3,4阶估计没啥问题,阶数一高符合要求的矩阵就会呈几何倍上升的
页: [1] 2
查看完整版本: 找出满足条件的所有矩阵并且输出