📄 read_bag_files.m
字号:
function [bags, num_data, num_feature] = MIL_data_wrap(filename)
nbag = 0;
prev_bag_name = '';
fid = fopen(cell2mat(filenames(nfile)), 'r');
if fid == -1,
error('The input data file is missing!');
end;
ninst = 1;
while feof(fid) == 0
line = strtrim(fgets(fid));
elems = strsplit(',',line);
bag_name = cell2mat(elems(1));
if strcmp(bag_name, prev_bag_name) == 0 %change of bag
nbag = nbag + 1;
bags(nbag).name = bag_name;
bags(nbag).label = 0; %bag label is initialized to 0
prev_bag_name = bag_name;
ninst = 1;
end
bags(nbag).inst_name(ninst) = elems(2);
%read in all the features for the current instance
for i = 3 : length(elems)-1
value = cell2mat(elems(i));
if isempty(strfind(value, ':')) == 0
value = value(strfind(value,':')+1 : length(value));
end
bags(nbag).instance(ninst, i-2) = str2num(value);
end
label = cell2mat(elems(length(elems)));
if(label(length(label)) == '.'), label = label(1:length(label)-1); end;
bags(nbag).inst_label(ninst) = str2num(label);
%if one instance in the bag is positive,
%the bag is set to positive
if bags(nbag).inst_label(ninst) == 1
bags(nbag).label = 1;
end
ninst = ninst + 1;
end
fclose(fid);
num_data = length(bags);
num_feature = size(bags(1).instance, 2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -