Matlab: как «перейти» (сменить каталог) в папку с именем num2str (# номер)?

У меня есть цикл, и на каждой итерации я создаю каталог с именем итерации и копирую некоторые файлы в эту папку, а затем я хочу cd в эту папку, но когда я хочу cd, я получаю сообщение об ошибке как

«Ошибка при использовании cd. Не удается выполнить CD для num2str(i) (имя не существует или не является каталогом)».

Как я могу решить эту проблему?

parfor i=1:20000
    iter=num2str(i);
    mkdir(iter)
    copyfile('./mainfolder',iter)
    cd ./num2str(i)
    [pow_maxx,FFee,AA33,BB33,shape] = main(i);
    power_max(i,:)=pow_maxx(1,:);
    Fe(i,:)=FFee;
    A3(i,:)=AA33;
    B3(i,:)=BB33;  
    Shape_all(i,:)=shape(1,:);  
end

person Soyol    schedule 27.06.2016    source источник
comment
./num2str(i) недействителен Matlab. Попробуйте что-то вроде cd(['./' num2str(i)]) (или просто cd(num2str(i))).   -  person horchler    schedule 28.06.2016
comment
спасибо так работает   -  person Soyol    schedule 28.06.2016
comment
@horchler У меня похожая проблема с удалением каталога. 1. Как можно удалить каталог, имя которого является числом, которое было преобразовано в str, например, как num2str(20). Ничего из нижеперечисленного не помогло: rmdir(num2str(20)); rmdir('num2str(20)'); rmdir(20); rmdir('20'); 2. И как можно удалить только содержимое папки с именем num2str(20)   -  person Soyol    schedule 28.06.2016
comment
Пожалуйста, прочтите справку/документацию для rmdir. Если каталог не пуст, вам нужно использовать второй аргумент, например, rmdir(num2str(20),'s').   -  person horchler    schedule 28.06.2016


Ответы (1)


в вашем коде cd ./num2str(i), ./num2str(i) не строка, просто используйте cd ['./',num2str(i)].

Более того, если у вас есть строки str1='abc' и str2='def', вы можете использовать [str1,str2] для их объединения.

person hankaixyz    schedule 29.06.2016