about summary refs log tree commit diff
path: root/sourcecodes/parameter_learning/Predictmultipleintrvention.m
blob: 1b9fa2f441a721c204b53e61d44b53d91f0576da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
function Predictmultipleintrvention(pre)
dfile=strcat(pre,'structure_input.txt');
sfile=dfile;
dfile=strcat(pre,'continuous_input.txt');
nnodefile=strcat(pre,'nnode.txt');

fnnode = fopen(nnodefile,'r');
nnodes = fscanf(fnnode,'%d');

fvarnamefile=strcat(pre,'varname.txt');

varfile = fopen(fvarnamefile,'r');

Std_flag=true;
[labels,cases,bnet]=readInput(dfile,sfile,nnodes,Std_flag);

[bnet]=parameterLearning(bnet,cases);

fvarfile=strcat(pre,'var.txt');
fvar = fopen(fvarfile,'r');                           
select_var_new = fscanf(fvar,'%d');

nm = numel(select_var_new);

varlabels = cell(1,nm);
varbuffer = fgetl(varfile);    %get header line as a string
for j=1:nm
    [varnext,varbuffer] = strtok(varbuffer);
    varlabels{j} = varnext;
    for i=1:nnodes    
        if strcmp(varlabels{j},labels{i})
            select_var_new(j)=i;
        end
     end    
    
end




fvardfile=strcat(pre,'vardata.txt');

fvard = fopen(fvardfile,'r');

select_var_data_new = fscanf(fvard,'%f');

means_orig = cell(1,nnodes);
stdevs_orig = cell(1,nnodes);
labels_orig = cell(1,nnodes);
%Read in original means and standard deviations
mapfile = strcat(pre,'map.txt');
fmap = fopen(mapfile,'r');
for i=1:nnodes
    buffer = fgetl(mapfile);
    temp = cell(1,4);
    for j=1:4
        [next,buffer] = strtok(buffer);
        temp{j} = next;
    end
    labels_orig{i} = temp{1};
    means_orig{i} = str2num(temp{4});
    stdevs_orig{i} = str2num(temp{3});
end
fclose(fmap);

%Need to map the means and stdevs to the correct labels
means = cell(1,nnodes);
stdevs = cell(1,nnodes);
%Read in labels in new order.
labelsnew = cell(1,nnodes);
mapdatafile = strcat(pre,'mapdata.txt');
fmapdata = fopen(mapdatafile,'r');
buffer = fgetl(fmapdata);
for i = 1:nnodes
    [next,buffer ] = strtok(buffer);
    labelsnew{i} = next;
end
fclose(fmapdata);
for i = 1:nnodes
    for j = 1:nnodes
       if strcmp(labelsnew{i},labels_orig{j})
          means{i} = means_orig{j};
          stdevs{i} = stdevs_orig{j};
          break
       end
    end
end

filename=strcat(pre,'net_figure_new.txt');

drawFigureM(nnodes,bnet,labels,filename,cases,stdevs,means,select_var_new,select_var_data_new);

writeParameters_int(pre,bnet,nnodes,labels,cases,stdevs,means,select_var_new,select_var_data_new);

end