Как читать текстовые значения из xlsread в MATLAB?

#excel #matlab

#excel #matlab

Вопрос:

Я прочитал файл Excel в MATLAB и поместил значения в массив с помощью этого оператора:

  [x,y]=xlsread('file_name.xlsx');
 

Когда я набираю [x, y], я вижу данные таблицы Excel. Что-то вроде этого, которое было вставлено в файл Excel:

 'ask' 'question'

'hello' 'hi'

'apple' 'fruit'
 

Я хочу получить доступ к каждому столбцу или строке, и я хочу поместить каждый столбец в определенный массив. Как я могу проанализировать значения и поместить их в другой массив? Мне также нужно знать количество строк. Как я могу это сделать?

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

1. Ваш синтаксис не имеет особого смысла. Вы просмотрели документацию для xlsread ? Этот вопрос на самом деле недостаточно ясен, чтобы дать полезные ответы. Какие типы данных в вашей электронной таблице? Как форматируются ваши данные? Каковы ваши критерии сортировки? Не зная этого, все, что мы действительно можем сделать, это указать вам на документацию по индексированию .

2. у меня нет какой-либо сортировки, я просто хочу получить доступ к элементам каждой строки, а типы моих данных — char

Ответ №1:

Когда вы запускаете функцию xlsread, она извлекает массив чисел и текстовый массив. Если значения в вашей электронной таблице представляют собой только не числовой текст (например, ‘cat’, ‘dog89’), но не числа (например, 100, 0.2), то текстовые значения будут сохранены в txt массиве и num будут пустыми.

[num,txt] = xlsread('spreadsheet.xlsx');

Если вы посмотрите num , вы увидите, что это пустой массив. Если вы распечатаете txt , он распечатает массив ячеек, содержащий значения.

Количество строк равно: numrows = size(txt,1);

Для доступа к определенной строке и значению столбца (например, строка 3, столбец 5): specvalue = txt{3,5};

Поместить каждый столбец в отдельный массив ячеек (например, поместить столбец 4 в его собственный массив ячеек): newcellarray = txt(:,4); %Note the use of () vs. {}