随机产生一个布尔矩阵(要保证这个矩阵的每一列至少有一个1)每次选择含有1最多的那一行并记录下来,将此行包含1的所有列删去,将此行删除。重复这个过程,直到矩阵为空阵。输出所有选择了的行。
小弟初学matlab,这个程序真的不知道怎么编,有会的大侠指教一下啊!下面是我下的部分代码,不知道怎么写了,参考。。。。
A=rand(10,20)
A=fix(0.5+A)
H=A
while 1
B=sum(H,2)
[m,i]=max(B)

展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Henry韩飞

    20人对此回答表示赞同

    A=rand(10,20);
    A=fix(0.5+A);
    H=A;
    while 1
    B=sum(H,2);
    [m,i]=max(B);
    t=i;
    q=0;
    for j=1:20
    if H(t,j)==1
    H(:,j)=zeros(10,1);
    end
    end
    if H==zeros(10,20);break;end
    end
    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Wyatt

    6人对此回答表示赞同

    你这个程序有问题。
    问题在于你没有把握好算法。你犯的错误在于你没有明白每一次循环删除都会使得矩阵的维数发生变化:比如“for j=1:20”,这里你认为矩阵的列一直为20.显然这是错误的。
    显然这是个死循环,给出参考程序:
    function H = main()
    A=rand(10,20);
    A=fix(0.5+A);
    H=A;
    while 1
    B=sum(H,2);
    [m,i]=max(B);
    t=i;
    展开
    6
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部