Matlab 结果输出的问题,如何让生成的向量输出到两个文件夹里?


clc
clear
format short

while 1
    a = rand(15,1);
    a = a ./ sum(a);
    
    b = rand(15,1);
    b = b ./ sum(b);
    
    c = rand(15,1);
    c = c ./ sum(c);
    %a=normrnd(17,6,[1 15]);
    %a = a ./ sum(a);
    %b=normrnd(29,7,[1 15]);
    %b = b ./ sum(b);
    %c=normrnd(38,7,[1 15]);
    c = c ./ sum(c);
    r1 = corr( a,b,'type','spearman' );  
    r2 = corr( b,c,'type','spearman' );
    r3 = corr( a,c,'type','spearman' );
    
    rnum_1 = [r1 r2] < -0.2;    % spearman,满足条件的数量
    ;    % spearman,满足条件的数量
    if sum(rnum_1) == 2 && r3 > 0 
        break;
    end
    
end
% 找到A B C
[~,Rind] = sort([r1 r2 r3]);
switch Rind(1)
    case 1  % a,b
       if Rind(2) == 2
         A_O = a;
         B = b;
         C = c;
       else
         A_O = b;
         B = a; 
         C = c;
       end
    case 2  % b,c
        if Rind(2) == 3
            A_O = b;
            B = c;
            C = a;
        else
            A_O = c;
            B = b;
            C = a;
        end
    case 3  % a,c
        if Rind(2) == 1
            A_O = c;
            B = a;
            C = b;
        else
            A = a;
            B = c;
            C = b;
        end
end
A
B
C

我用上述式子生成了一组向量A,B,C,我如何让它输出到两个不同的M文件中呢,比如这两个M文件分别在COP和SOP文件夹里面。


for k = 1:50
    filename = strcat(['p' num2str(k)]);% p1、p2、p3...
    input_data = importdata(filename);
    
    d = pdist(input_data,'hamming');
    c=linkage(d,'average');
    hc=cluster(c,6);
    hc1=find(hc==1);
    hc2=find(hc==2);
    hc3=find(hc==3);
    hc4=find(hc==4);
    hc5=find(hc==5);
    hc6=find(hc==6);
    
    
    %p1的结果存在hc1文件夹,p2结果存在hc2文件夹,以此类推
    outpath = strcat(['C:\Users\Administrator\Desktop\lab\30-26\hc\hc' num2str(k)]);
    cd(outpath);
    
    fid = fopen('hc1.txt','a');
    fprintf(fid,'%d',hc1);
    fid = fopen('hc2.txt','a');
    fprintf(fid,'%d',hc2);
    fid = fopen('hc3.txt','a');
    fprintf(fid,'%d',hc3);
    fid = fopen('hc4.txt','a');
    fprintf(fid,'%d',hc4);
    fid = fopen('hc5.txt','a');
    fprintf(fid,'%d',hc5);
    fid = fopen('hc6.txt','a');
    fprintf(fid,'%d',hc6);
    
    fclose(fid);
end

这样可以吗?你试试!

你可以直接用save语句

folder1 = 'COP/';
folder2 = 'SOP/';
save([folder1, 'abc.mat'], 'A','B','C');
save([folder2, 'abc.mat'], 'A','B','C');

然后你需要用到A、B、C的时候直接在相应的文件夹下使用:

load('abc.mat');

A、B、C就自动加载到工作区了

img

复制对应路径,直接点该位置ctrl+c即可
然后将路径放入想报存的代码
save('D:\2018matlab\bin\New Folder (75)\New Folder (2)\New Folder\data.mat', 'data1')
save('选择的路径\data.mat', '想保存的变量名称')
效果

img


有用麻烦采纳一下,谢谢