Импортировать строковые значения из CSV-файла в MATLAB - PullRequest
0 голосов
/ 21 марта 2019

Я хочу импортировать строковые значения из CSV-файла и использовать их в MATLAB.Я использовал функции readtable () и table2array, чтобы получить массив строковых значений.

CSV-файл имеет 10 строковых значений, показанных ниже:

банан

яблоко

апельсин

лимон

яблоко

лимон

клубника

яблоко

арбуз

апельсин

Когда я запускаю свой код, япредполагается, что массив 1x10, и он должен был начаться с «банана», но я получаю массив 1x9, и моя первая строка «яблоко», а не банан.Другими словами, я не могу получить первое значение массива.Вы можете помочь?

a = readtable('C:\Users\cinar\Desktop\Test Values.csv');
a = table2array(a);

Ответы [ 3 ]

1 голос
/ 22 марта 2019

На главной вкладке matlab у нас есть опция «импортировать данные», щелкните ее и выберите интересующий вас файл csv или excel, и вы можете импортировать весь документ или выборочно импортировать определенный столбец из документа.!При импорте вы можете выбрать, хотите ли вы, чтобы выбранные столбцы импортировались как «вектор столбцов / числовая матрица / массив ячеек ... и т. Д.». Я использую это потому, что легко выборочно импортировать строки и столбцы одним щелчком мыши!

1 голос
/ 22 марта 2019

Я изменил свою функцию для импорта данных. Я использовал функцию importdata () вместо функции readtable (). Когда я пишу следующий код, я получаю все значения. (Массив 1x10, начинающийся с банана)

a = importdata('C:\Users\cinar\Desktop\Test Values.csv');

1 голос
/ 21 марта 2019

Если вы можете использовать массив ячеек, я могу порекомендовать вам этот метод:

a = fopen('C:\Users\cinar\Desktop\Test Values.csv');
data = fread(a, '*char')'; %read content
fclose(a);
results = regexp(data, ',', 'split'); %return cell array

Результат:

1×10 cell array

Columns 1 through 6

  {'banana'}    {' apple'}    {' orange'}    {' lemon'}    {' apple'}    {' lemon'}

Columns 7 through 10

  {' strawberry'}    {' apple'}    {' watermelon'}    {' orange'}
...