QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 29926|回复: 92
打印 上一主题 下一主题

[已经回复] matlab运行答案总是ans=3,请指点原因。在线等

[复制链接]
字体大小: 正常 放大
佳琳 实名认证       

7

主题

2

听众

249

积分

升级  74.5%

  • TA的每日心情
    无聊
    2013-1-30 18:41
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    跳转到指定楼层
    1#
    发表于 2010-8-27 11:51 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 佳琳 于 2010-8-27 16:11 编辑

    请问一下,我的matlab程序运行答案总是ans=3,是怎么回事,请高手指点。
    我已经清空过好几次了,都是一个结果。
    1. a=linspace(0,0,1000);
    2. x=zeros(1000,100);
    3. y=zeros(1000,100);
    4. w=[];
    5. m=[];
    6. k=0;
    7. i=0;
    8. j=0;
    9. t=0;
    10. d=0;
    11. s=0;
    12. g1=0;
    13. g2=0;
    14. wlong=0;
    15. w(1)=0;
    16. step=0;
    17. while step<2

    18. %随机选取顾客
    19. while t<=600
    20. kk=round(rand()*999)+1;
    21. if aa(kk)==0
    22. aa(kk)=1;
    23. t=t+1;
    24. end;
    25. end;
    26. k=round(rand()*400);
    27. t=0;
    28. while t < =k
    29. kk = round(rand() * 999) + 1;
    30. if aa(kk) == 0
    31. aa(kk) = 2;
    32. t = t + 1;
    33. end;
    34. end;
    35. for i = 1:1000
    36. if aa(i) == 0
    37. aa(i) = 3;
    38. end;
    39. end;
    40. %设置q,表示顾客i对j是否偏好
    41. for i = 1:1000
    42. for j = 1:100
    43. if p(i, j)==0
    44. q(i, j) = 0;
    45. else
    46. q(i,j)=1;
    47. end;
    48. end;
    49. end;

    50. %开始随即挑选DVD编号
    51. while s < 100000000
    52. %给第一组的顾客选DVD,存入X
    53. for i = 1:1000
    54. if aa(i) == 1 | aa(i) == 2
    55. t = 1;
    56. while t <=3
    57. kk=round(rand() * 99)+1;
    58. if x(i, kk) == 0
    59. x(i, kk) = 1;
    60. t = t + 1;
    61. end;
    62. end;
    63. end;
    64. end;
    65. %给第二组的顾客选DVD,存入y
    66. for i = 1:1000
    67. if aa(i) == 3
    68. t = 1;
    69. while t <=3
    70. kk=round(rand() * 99)+1;
    71. if y(i, kk) == 0
    72. y(i, kk) = 1;
    73. t = t + 1;
    74. end;
    75. end;
    76. end;
    77. end;
    78. %计算两组顾客分到了想要的DVD的数量
    79. for r = 1:1000
    80. for g = 1:100
    81. if aa(r) == 1
    82. g1 = g1 + x(r, g) * q(r, g) * y(r, g);
    83. g2 = g2 + x(r, g) * q(r, g) * y(r, g);
    84. elseif aa(r) == 2
    85. g1 = g1 + x(r, g) * q(r, g);
    86. elseif aa(r) == 3
    87. g2 = g2 + y(r, g) * q(r, g);
    88. end;
    89. end;
    90. end;
    91. %看通过率是否达到95%,达到计算此时的满意度和DVD数
    92. if g1 * (600 + k) / 1600 / (600 + k) + g2 * (1000 - k) / 1600 / (1000 - k) > 0.95
    93. wlong = wlong + 1;
    94. for r = 1:1000
    95. for g = 1:100
    96. w(wlong) = w(wlong) + x(r, g) * p(r, g);
    97. m(wlong) = g1 + g2;
    98. end;
    99. end;
    100. end;

    101. s = s + 1;
    102. end;

    103. step=step+1
    104. end;


    105. w
    106. m
    复制代码

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    0

    主题

    0

    听众

    16

    积分

    升级  11.58%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

    13

    主题

    2

    听众

    1074

    积分

    升级  7.4%

  • TA的每日心情
    无聊
    2013-12-11 13:50
  • 签到天数: 49 天

    [LV.5]常住居民I

    回复

    使用道具 举报

    1341

    主题

    738

    听众

    2万

    积分

    数学中国总编辑

  • TA的每日心情

    2016-11-18 10:46
  • 签到天数: 206 天

    [LV.7]常住居民III

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组2011年第一期数学建模

    群组第一期sas基础实训课堂

    群组第二届数模基础实训

    群组2012第二期MCM/ICM优秀

    群组MCM优秀论文解析专题

    回复

    使用道具 举报

    2

    主题

    3

    听众

    105

    积分

    升级  2.5%

  • TA的每日心情
    擦汗
    2013-9-21 12:59
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    自我介绍
    一切尽力就好
    可能是你以前的变量存储在里面你不知道,可以打开workspace看一下,直接将这个变量删除
    回复

    使用道具 举报

    5

    主题

    3

    听众

    1060

    积分

    升级  6%

    该用户从未签到

    群组Matlab讨论组

    回复

    使用道具 举报

    花道        

    0

    主题

    2

    听众

    70

    积分

    升级  68.42%

    该用户从未签到

    新人进步奖

    我基本上是采用看英语文章的办法,先泛读,再精读,再一句一句看,最后再提纲挈领,总算是明白一点了,当然,也可能还是领悟错了。最后要说的一句话是:楼主,你很牛叉,希望你不是真的有病。   
    回复

    使用道具 举报

    佳琳 实名认证       

    7

    主题

    2

    听众

    249

    积分

    升级  74.5%

  • TA的每日心情
    无聊
    2013-1-30 18:41
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    回复

    使用道具 举报

    8

    主题

    3

    听众

    342

    积分

    升级  14%

    该用户从未签到

    自我介绍
    我是鱼宝~~~

    群组Matlab讨论组

    回复

    使用道具 举报

    0

    主题

    2

    听众

    34

    积分

    升级  30.53%

    该用户从未签到

    变量定义有点乱,没有发挥matlab矩阵运算的优势,建议清空所有变量,并检查循环部分代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-5 05:29 , Processed in 0.998827 second(s), 101 queries .

    回顶部