У меня есть большой файл CSV (должна быть около 1 миллиона строк) с опцией данными со следующей структурой (содержание изменяется):MATLAB: Используя TextScan и преобразование массива ячеек в матрице
secid, date, days, delta, impl_volatility, impl_strike, impl_premium, dispersion, cp_flag, ticker, index_flag, industry_group
100000, 02/05/1986, 60, -80, 0.270556, 74.2511, 5.2415, 0.021514, C, ASC, 0, 481
100000, 03/05/1986, 30, -40, 0.251556, 74.2571, 6.2415, 0.025524, P, ASC, 0, 481
Я успешно импортирован тестовый файл, используя следующие:
ftest = fopen('test.csv');
C = textscan(ftest,'%f %s %f %f %f %f %f %f %s %s %f %f','Headerlines',1,'Delimiter',',');
fclose(ftest);
Однако, C представляет собой массив ячеек, и это делает его труднее обрабатывать содержимое файла в MATLAB. Было бы проще иметь его как «обычный» массив (простите меня за то, что я не знаю правильной номенклатуры, я только начал работать с Matlab).
Если выход I C, я получаю:
Columns 1 through 6
[2x1 double] {2x1 cell} [2x1 double] [2x1 double] [2x1 double] [2x1 double]
Columns 7 through 12
[2x1 double] [2x1 double] {2x1 cell} {2x1 cell} [2x1 double] [2x1 double]
Так внутри массива ячеек, который является C, есть массивы и клеточные массивы - массивы для чисел и сотовых массивов для строк. Если я попытаюсь проверить элемент (1,2), я должен использовать C {1} (2), но если я хочу проверить элемент (2,2), я должен использовать C {2} {2}. В идеале я хотел бы получить доступ как к C (1,2), так и к C (2,2). Вопрос в том, как мне это сделать?
Я искал решения и нашел cells2mat, но он работает только в том случае, если все содержимое является числовым (я думаю). Я нашел это решение: Convert cell array of cell arrays to matrix of matrices, но horzcat извлекает ошибку, которая, как я полагаю, может возникнуть из-за той же проблемы.
Заранее благодарю вас за ваше время.
массив ячеек - массив, который может хранить значения разных типов. Здесь у вас есть массив ячеек, в котором хранятся оба столбца чисел и строк. [Этот вопрос] (http://stackoverflow.com/questions/13540418/convert-cell-array-of-cell-arrays-to-matrix-of-matrices) предполагает, что все, что у вас есть, это числовые значения, поэтому массив ячеек действительно избыточно, и его можно преобразовать в матрицу, которую намного легче манипулировать. Но что вы ожидаете получить, когда у вас есть струны? –