#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. {}