Для вашего второго вопроса о присвоении имен выходным файлам тех же, что и для ввода, вы можете использовать версию функции save и передать переменную sub_name (i) .name какаргумент имени файла.
save (sub_name (i) .name, 'names', 'durations', 'onsets')
Это имя используется точно так жеввод и вывод (в разных каталогах, в вашем скрипте).Когда я сохраняю выходные файлы, я обычно храню их в том же каталоге, что и входные данные, поэтому я изменяю имя входного файла с помощью регулярных выражений (см. regexprep ) или добавляя префикс или суффикс ( strcat * 1014).*) для создания связанного, но отдельного выходного файла.
Для дальнейшего использования ... тип файла для сохранения по умолчанию - формат данных MATLAB;вы можете передать в качестве аргумента -ASCII, чтобы сохранить его в виде текстового файла, если ваши типы данных были совместимы.Массивы ячеек в этом примере - нет, но строки и числовые матрицы были бы полезны, поэтому, если бы текстовые выходные файлы были важны, вы могли бы использовать альтернативные структуры данных с самого начала или преобразовывать ячейки с помощью cell2mat.Типовой пример с версией save (): save (filename, '-ASCII', 'x', 'y', 'z') , где x, y, z - переменные, подходящие для ASCII, и имя файлатекстовый файл
[дополнительный ответ, добавление 5 января 2011 г.]
О вашем первом вопросе об ошибке: ???Неправильная ссылка на индексную матрицу.
Возможно ли, что сохраненный файл .mat содержит переменную с именем dir , которая переопределяет стандартную функцию списка каталогов и вызывает эту ошибку?Я читал этот совет на другом сайте, просто хотел передать его на случай, если это поможет.