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就自动加载到工作区了
复制对应路径,直接点该位置ctrl+c即可
然后将路径放入想报存的代码
save('D:\2018matlab\bin\New Folder (75)\New Folder (2)\New Folder\data.mat', 'data1')
save('选择的路径\data.mat', '想保存的变量名称')
效果