У меня есть следующий скрипт для импорта текстовых файлов в Matlab, которые включают почасовые данные, где я затем пытаюсь преобразовать их в среднесуточные значения:
clear all
pathName = ...
TopFolder = pathName;
dirListing = dir(fullfile(TopFolder,'*.txt'));%Lists the folders in the directory specified by pathName.
for i = 1:length(dirListing);
SubFolder{i} = dirListing(i,1).name;%obtain the name of each folder in
%the specified path.
end
%import data
for i=1:length(SubFolder);
rawData1{i} = importdata(fullfile(pathName,SubFolder{i}));
end
%convert into daily averages
rawData2=cell2mat(rawData1);
%create one matrix for entire data set
altered=reshape(rawData2,24,(size(rawData2,2)*365));
%convert into daily values
altered=mean(altered)';
%take the average for each day
altered=reshape(altered,365,size(rawData2,2));
%convert back into original format
Моя проблема заключается в попытке преобразовать данные обратно в тот же формат, что и «rawData1», который был ячейкой для каждой переменной (где каждая переменная обозначена «SubFolder». Причина для этого заключается в том, что все, кроме одного из переменные являются векторами, где оставшаяся переменная является матрицей (8760 * 11).
Итак, пример этого будет:
clear all
cell_1 = rand(8760,1);
cell_2 = rand(8760,1);
cell_3 = rand(8760,1);
cell_4 = rand(8760,1);
cell_5 = rand(8760,1);
cell_6 = rand(8760,11);
cell_7 = rand(8760,1);
cell_8 = rand(8760,1);
cell_9 = rand(8760,1);
data = {cell_1,cell_2,cell_3,cell_4,cell_5,cell_6,cell_7,cell_8,cell_9};
Где мне нужно преобразовать каждую ячейку в «данных» из часовых значений в среднесуточные значения (то есть 365 строк).
Любой совет будет высоко ценится.