Я пытаюсь написать функцию в MATLAB, которая будет группировать довольно большие файлы excel в матрице, чтобы читать и анализировать числа (потому что есть много файлов excel и много чисел). У меня есть функция вызова функции, которая должна принимать имена файлов excel из матрицы в основной функции и использовать функцию «xlsread» для чтения соответствующих ячеек. Каждый файл имеет тот же формат и одинаковое количество столбцов и строк, поэтому назначение ячеек для чтения не является проблемой. Однако, чтобы передать каждый файл excel в функцию чтения, я назначаю имя файла excel переменной, которая затем передается функции чтения, которая затем передает переменную в xlsread. Однако, когда я запускаю его, я получаю сообщение об ошибке: «Имя файла должно быть строкой». Ниже приведен пример того, как настроен мой код.Строковые переменные MATLAB
filenames = {'file1.csv','file2.csv',....};
for i=1:10
file=filenames(i);
data=readin(file);
end
function [sheetdata] = readin(filename)
sheetdata = xlsread(filename,'cellrange','sheet');
end
Возможно ли это?
Просто fyi, функция xlsread принимает аргументы как строки. Первый аргумент является именем файла, такие как:
«file1.xls»
Вторым аргументом является диапазон ячеек, которые будут импортированы, такие как:
«B2: D5»
Это указывает MATLAB на импорт данных в ячейки, включенные в прямоугольник, в верхнем левом углу B2 и в правом нижнем углу D5.
Спасибо за любую помощь.
EDIT: Я могу заставить его работать, если я задаю переменную непосредственно к имени файла, например:
name='file1';
xlsread(name,'A1:C5');
Так что я предполагаю, что проблема заключается в том, как я настройка матрицы имен файлов , Я хотел бы настроить его таким образом, потому что я не знаю, сколько листов мне придется анализировать, и с помощью матрицы я могу легко добавлять и удалять или редактировать любые листы без изменения любую другую часть моего кода.
Спасибо, что сделал трюк. В моем коде у меня была матрица, обозначенная {}, но у меня не было {} в строке file = filenames {i}. – Kevin