qq_40433686 2021-10-10 13:38 采纳率: 90.9%
浏览 21
已结题

MATLAB 随机生成数学题 一共十组但总有五组是一模一样的 是为什么?该怎么修改?



difficulty=0;
jibie=input('请输入级别,即几个数字相加\n');
switch jibie
    case 2
        difficuty=2;
    case 3
        difficuty=3;
    case 4
        difficuty=4;
end
D0="";
D1="";
str="";
ans=0;
B="";%符号位
for h=1:10
    D=cell(10,1);
    for l=1:10
        A=[];%数据位
        for i=1:difficuty
            A(i)=unidrnd(9);
        end
        
        B="+";%符号位
        C="";%组合位
        for k=1:(2*difficuty-1)
            if mod(k,2)
                C(k)= A((k+1)*1/2); %奇数位
            else
                C(k)= B(1);%偶数位
            end
        end
        
        C(2*difficuty)="=";
        
        D0="";
        D1="";
        for mn=1:2*difficuty
            D0=D0+C(mn);
        end
        
        D{l,1}=D0;
        ans=A(1);
        for p=1:difficuty-1
            ans=ans+A(p+1);
            
        end
        D1=D0+num2str(ans);
        
        E{l,1}=D1;
    end
    
    fid=fopen('answer.txt','w');
    for g=1:10
        fprintf(fid,'%s\n',D{g,1});
    end
    winopen('answer.txt');
    fclose(fid)
end
  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-10-10 14:30
    关注

    你好同学,这是由于你每次打开同一个文件所致(每次打开相同文件,系统默认txt文件名相同,所有文件内容跟最后一个文件内容相同),可以用编号区分每一步不同的文件:

        fid=fopen(['answer',num2str(h),'.txt'],'w');
        for g=1:10
            fprintf(fid,'%s\n',D{g,1});
        end
        winopen(['answer',num2str(h),'.txt']);
        fclose(fid);
    

    这样就不会每次都打开一样的文件
    有帮助望采纳,支持一下答主哦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月10日
  • 已采纳回答 10月10日
  • 创建了问题 10月10日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改