MATLAB: Как извлечь определенные столбцы из файла CSV?

#matlab #csv

#matlab #csv

Вопрос:

Я должен извлечь 1, 2 и 4-й столбцы из данного файла CSV и записать его в новый файл. Важно, чтобы новый файл содержал 1, 2 и 4-й столбцы из исходного файла в 1, 2, 3-й столбцы в новом файле.

Я знаю, что первым шагом было бы извлечь требуемые значения из массива:

 CSVOutput = csvread(‘NumericData.csv’, startx, starty, [startx, starty, endx, endy])   
  

затем я могу использовать csvwrite , чтобы поместить это в новый файл.

Но проблема в том, что я не знаю endx, endy . Я могу проверить это только вручную.

Итак, есть ли более элегантный способ?

Комментарии:

1. Какую версию MATLAB вы используете? Возможно, вы могли бы использовать readtable вместо csvread . Кроме того, последний ввод в csvread необязателен, я бы просто проигнорировал его и удалил первые строки импортированных данных, чтобы получить тот же эффект, что и при указании startx , starty .

2. @Dev-iL моя версия r2014a

Ответ №1:

Вы можете использовать

 t = readtable(file.csv);
  

как предложил разработчик. Возвращаемый объект представляет собой структуру, где каждое поле названо в честь столбца таблицы. С помощью

 fieldnames(t);
  

вы получаете массив ячеек, содержащий имена столбцов.

Вы можете получить доступ к столбцу следующим образом:

 t.('columnName')