matlab iterative filenames for saving

前端 未结 4 1429
情书的邮戳
情书的邮戳 2020-12-21 08:24

this question about matlab: i\'m running a loop and each iteration a new set of data is produced, and I want it to be saved in a new file each time. I also overwrite old fi

4条回答
  •  北荒
    北荒 (楼主)
    2020-12-21 08:56

    For creating a name based of an already existing file, you can use regexp to detect the '_new.(number).mat' and change the string depending on what regexp finds:

    original_filename = 'data.string.mat';
    im = regexp(original_filename,'_new.\d+.mat')
    if isempty(im) % original file, no _new.(j) detected
        newname = [original_filename(1:end-4) '_new.1.mat'];
    else
        num = str2double(original_filename(im(end)+5:end-4));
        newname = sprintf('%s_new.%d.mat',original_filename(1:im(end)-1),num+1);
    end
    

    This does exactly that, and produces:

        data.string_new.1.mat
        data.string_new.2.mat
        data.string_new.3.mat
        ...
    
        data.string_new.9.mat
        data.string_new.10.mat
        data.string_new.11.mat
    

    when iterating the above function, starting with 'data.string.mat'

提交回复
热议问题