Как я могу получить массив строк из столбца Excel? - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь импортировать файл Excel и создать массивы для каждого столбца в файле Excel. В столбце A есть строки, а в столбцах B & C - числа. Я был в состоянии импортировать столбцы B & C как массивы, но у меня остался пустой массив, где я хочу массив строк.

Я пытался использовать [~, text]=xlsread('myfile.xlsx', 'A:A');, но массив все еще пуст.

Я хочу создать этот массив строк, чтобы иметь возможность печатать строки в текстовый файл таким образом fprintf(fileID, 'Some words here %s other words here', text(i));, где %s будет заменен строкой из текста массива с индексом i .

1 Ответ

0 голосов
/ 11 января 2019

Я не уверен, почему то, что вы опубликовали, не работает - вы можете показать пример таблицы?

Однако выходные данные text и raw из [num, text, raw] = xlsread(myfile.xls) (в MATLAB R2018b, так должно быть в любой более ранней версии) являются массивами ячеек, а не массивами строк. Чтобы индексировать отдельную строку (или технически символьный вектор), вам нужно использовать фигурные скобки, например ::

fprintf(fileID, 'Some words here %s other words here', text{i});

Имейте в виду, что xlsread удалит пустые или нечисловые строки и столбцы до и после данных, которые он возвращает в num, а также пустые или нетекстовые строки и столбцы до и после того, что он вернет в text, так что если ваши данные имеют заголовки или пустые строки перед числовыми данными, то индексы строк вашего числового массива могут не соответствовать индексам строк массива ячеек, содержащего текстовые ячейки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...