Я не уверен, что вы подразумеваете под "как получить доступ к папке 'direc'" (direc
является массивом struct, и вы уже обращаетесь к нему с помощью direc(index).fieldname
, как и предполагалось), но я думаю, что основная проблема в том, что в цикле for каждая итерация перезаписывает предыдущее содержимое x, так что в итоге вы получаете содержимое последнего прочитанного файла.
Если все ваши CSV-файлы имеют одинаковые размеры, то вам нужно
x(:,:,i) = csvread(direc(i).name,1);
Затем вы можете получить доступ ко всем первым столбцам с помощью squeeze(x(:,1,:))
- только x(:,1,:)
вернет трехмерный массив размером 3000x1x145 (используя числа, которые вы указали выше), squeeze
создаст более удобную матрицу 3000x145.
Если не все ваши CSV-файлы имеют одинаковое количество строк и столбцов, вам необходимо использовать массив ячеек, и удобное индексирование не может быть использовано (кстати: signal(i,:,:)=x(:,:,2)
действительно работал на двумерном x? ), либо заполните нулями, что может потребовать промежуточного шага для определения размера 3D-массива в конце.