matlab 循环中使用的存储数据方法 #更新中

直接放代码
1

aa=[];
bb=[];
cc=[];
dd=[];
i = 1
j = 1;
    for numNearestAnchor = 5:5:50
        tic
        [y1] = GECSGO1_test(X,c,numAnchor,numNearestAnchor);
        toc
        sumTime = toc
        [PA, UA, AA, OA, Kappa] = HSI_ClusteringMeasure(gt,y1);
        aa(i,j) = AA;
        bb(i,j) = sumTime;
        cc(i,j) = OA;
        dd(i,j) = Kappa;
        j = j+1;
        save('shuju.mat','aa','bb','cc','dd');
    end

效果如下:
matlab 循环中使用的存储数据方法 #更新中_第1张图片
当然也可以用二维矩阵存放,这里略

2


a1 = num2str(num_PC);
a2 = num2str(numAnchor);
a3 = num2str(numNearestAnchor);
name = [a1,'_',a2,'_',a3,'_','FCAN','_','Indian']

save(name,'OA2','AA2','Kappa2','sumTime2','result_2','num_PC','numAnchor','numNearestAnchor') 

效果如下,后期处理比较麻烦
matlab 循环中使用的存储数据方法 #更新中_第2张图片

其实1 2都是用save,以后看看还有没有更好的。

3、在1 2 的基础上,循环读取存储的文件
(1 2 步骤其实可省去)

clear all;
clc;
addpath('Salinas')
addpath('Pavia')
addpath('Indian')

% c = 'Salinas';
c = 'Pavia';
% c = 'Indian';

flag = 0;
acc = [];
cow = 1;
for i = 50:50:300
    row = 1;
    for j = 5:5:30
        a = num2str(i);
        b = num2str(j);       
        name = [a,'_',b,'_',c,'.','mat'];
        load(name)
        acc(cow,row) = result1(1);
        row = row + 1;
    end
    cow = cow + 1;
end
file_name = ['Sum_',c];

save(file_name,'acc')

你可能感兴趣的:(matlab,机器学习)