2016-07-26 3 views
-2

Мой вопрос (я предполагаю) прост, но не удалось его взломать через много дней при поиске. Поэтому я надеялся, что некоторые из вас могут мне помочь. Если вы действительно можете, пожалуйста, дайте мне знать, это очень важно для меня. Моя проблема заключается в следующем:CSV чтение и запись loop-MATLAB

Я работаю над проектом в MATLAB. После запуска некоторых симуляций я получаю 100 csv-файлов с именем Run1_Mon_m2, Run2_Mon_m2, ......., Run100_Mon_m2. Файлы состоят из 10 столбцов и 289 строк, заголовки для каждого включены. Я хочу сделать следующее:

Из каждого из 100 файлов csv мне нужно выбрать третий столбец и импортировать его в новый файл csv, назовем его «Final». В конце концов, Final будет состоять из 100 столбцов и 289 строк, включая заголовки, сделанные из 3-х столбцов моих оригинальных 100 файлов.

Было бы идеально, если бы это было достигнуто через MATLAB. Если вы абсолютно не знаете, как это сделать, то любой другой метод также очень ценится. Если бы кто-нибудь из вас, других программистов, мог мне помочь, я бы буквально был в вашем долге. Большое спасибо за любую помощь.

ответ

0

Вы можете прочитать каждый файл с помощью readtable, а затем извлечь столбец, который вы хотите, используя функции индексирования в таблице, например. t = readtable('Run1_Mon_m2.csv');, чтобы получить таблицу в t, а затем t(:,3), чтобы получить третий столбец. Начните с документами здесь и читать по типу таблицы:

http://www.mathworks.com/help/matlab/ref/readtable.html

+0

Когда я попытался запустить цикл в 100 раз, после того, как 1-й раз, когда я получаю сообщение об ошибке (при использовании writetable), что у меня есть дубликат имя переменной , что следует ожидать, так как столбцы i extract содержат одни и те же данные. Как мне это преодолеть? –

+0

Вы должны конкатенировать таблицы в программе, прежде чем писать их на диск, я бы подумал. Ваше описание проблемы довольно расплывчато, так что трудно быть уверенным, что именно вы делаете. Действительно, вы должны опубликовать минимальный рабочий пример, чтобы быть в теме для этого сайта. – Brick