如何使用Matlab为一组类分配不同的标签?

时间:2014-10-19 19:31:37

标签: arrays matlab label

有人可以指导我使用matlab以最佳方式执行此操作。

我的文件名为 001_g_01.sig ... 001_g_08.sig,002_g_01.sig ... 002_g_010.sig,003_g_01.sig ... 003_g_08,最多n个文件。 我想要做的是为属于一个用户的文件分配标签( ie001_g_01.sig ... 001_g_08.sig as" User1",002_g_01.sig ... 002_g_010.sig as&# 34; User2" 等等。

我有以下代码来阅读文件。

dirName= '/FolderPath';
files = dir( fullfile(dirName,'001_g_1.Sig') );
files = {files.name};

dirName1= '/FolderPath';
files1 = dir( fullfile(dirName1,'*.Sig') );
files1 = {files1.name};

for i=1:length(files)
fname = fullfile(dirName,files{i}); 
     %#  some calculation
  for j=i+1:length(files1)
    fname1 = fullfile(dirName1,files1{j});    
  %#  some calculation
  end 
end

2 个答案:

答案 0 :(得分:0)

你可以这样做:

label = [repmat('User1',size(files,1),1); repmat('User2',size(files1,1),1) ];

这将创建包含'User1''User2'的标签数组。如果你需要单独使用它,你可以这样做:

label1 = [repmat('User1',size(files,1),1)];

答案 1 :(得分:0)

files1 =
        '001_g_01.sig'
        '001_g_08.sig'
        '003_g_01.sig'
        .
        .

如果files1单元,如上所述,那么您可以写:

userlabel = {'001','002','003'};
f = cellstr(files1);
for ii = 1:3
    result{ii} = strncmp(userlabel(ii),f,3);
end