Я не уверен, почему то, что вы опубликовали, не работает - вы можете показать пример таблицы?
Однако выходные данные 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
. Вам решать, будет ли использование табличного типа данных более целесообразным в остальной части вашей программы.