У меня есть следующий код:
% Code to import data from .csv files into cell arrays called strain_trans_data, strain_ax_data, and load_data
strain_trans_data = cell2mat(strain_trans_data);
strain_trans_data = strain_trans_data*-1; % trans strain to -trans strain
strain_ax_data = cell2mat(strain_ax_data);
load_data = cell2mat(load_data);
new_trans_data = [];
new_ax_data = [];
new_load_data = [];
regressions = {'File name','y-int axial','slope axial','y-int trans','slope trans','v'};
% Rest of the code...
Код импортирует данные из некоторых CSV-файлов, которые я анализирую, выполняя линейную регрессию. Чтобы выполнить линейную регрессию и построить данные, мне нужно преобразовать массивы ячеек в матрицы. Когда я импортирую много данных (из более чем 10 .csv, в моем случае у меня 11 файлов), strain_trans_data = cell2mat(strain_trans_data);
и strain_ax_data = cell2mat(strain_ax_data);
работают нормально, они просто конвертируют массивы ячеек в матрицы. Поскольку существует 11 наборов данных, массивы ячеек равны nx11
, а окончательные матрицы - nx11
.
По какой-то причине load_data = cell2mat(load_data);
вместо этого удаляет один столбец, поэтому начальный массив ячеек равен nx11
, а конечная матрица - nx10
. Я пробовал с другими наборами данных (меньше 10), и эта проблема, кажется, возникает только в этом случае. Странно то, что и strain_trans_data = cell2mat(strain_trans_data);
, и strain_ax_data = cell2mat(strain_ax_data);
работают нормально, проблема возникает только при последнем преобразовании. Есть идеи, почему это может происходить?
Редактировать: я попытался войти в функцию cell2mat, чтобы увидеть, что происходит, и нашел шаг, где возникает проблема. На изображении ниже m
это nx11 cell
тогда по какой-то причине он меняется на nx10 double
. Может ли быть проблема с данными в массиве ячеек?