2016-07-22 4 views
0

У меня есть несколько таблиц в matlab, и я хотел бы написать все в один файл .csv, вертикально конкатенировать. Я хотел бы сохранить имена столбцов из каждой таблицы в качестве верхней строки и хотел бы использовать цикл для записи csv. Конечной целью является считывание данных в R, но R.matlab не работает. Предложения о том, как это сделать?Написание таблиц из Matlab в CSV

Как изменить имена файлов в цикле for с помощью итератора? , например. по линиям

for i=1:10 
    writecsv('mydatai.csv',data(i)) 
end 

Таким образом, я должен иметь в конце 10 csv файлов в качестве вывода.

ответ

0

Вы можете изменить имя файла в пределах петли, используя для функции форматирования Sprintf строки, например:

dlmwrite(sprintf('mydata%i.csv', i), data(i)) 

Обратите внимание, что% я часть строки является оператором Sprintf форматирования целого числа, оно просто совпадение, что вы также решили назвать свою переменную итератора «i».

Вы можете добавить дополнительные данные в существующую CSV, используя функцию dlmwrite, которая использует разделитель запятой по умолчанию и включает флаг «-append».

+0

dlmwrite работает только на числовых данных и не принимает таблицы в качестве вклада. – excaza

+0

Вы правы, я предположил, что исходный вопрос заключался в использовании термина «таблица» в более общем смысле, поскольку тип данных таблицы относительно новый для MATLAB, введенный в R2013b – DMR

0

Другим способом было бы использовать

writetable(Table,filename) 

и изменить имя файла после каждого чередованием вы можете использовать

filename = ['mydata' num2str(i) '.csv'] 
Смежные вопросы