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

你好同学,这是由于你每次打开同一个文件所致(每次打开相同文件,系统默认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);

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