вместо
a = textscan(fid, '%s', 1, 'Delimiter', '\n');
вы можете использовать
a = fgetl(fid);
Это вернет следующую строку в fid
в виде строки (символ новой строки в конце удаляется). Затем вы можете разбить эту строку на разделенные пробелами фрагменты следующим образом:
b = regexp(a, '\s*', 'split');
Комбинированный:
b = regexp(fgetl(fid), '\s*', 'split');
Обратите внимание, что это не на 100% эквивалентно вашему коду, поскольку использование textscan
добавляет еще один слой ячейки (представляющий разные строки в файле). Это не проблема, просто используйте
b = {regexp(fgetl(fid), '\s*', 'split')};
если вам нужен этот дополнительный клеточный слой.