У меня есть матрица, как показано ниже:вставить/вкладку пространства для отдельного поля в элементе столбца MATLAB
615319419701102123000000 000000 000000 000000 000000 000000 000000 000003 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000
Матрица имеет 24 столбца. В 1-й колонке 7 цифр представляют (т.е. 6153194) идентификатор stattion, следующие 4-значные годы (1970), следующий 2-значный месяц (11, т. Е. Ноябрь), следующая 2-значная цифра представляет день месяца (например, в 1st столбец 02 означает 2-й день), тогда 123 - это флаг, обозначающий временные ряды скорости осаждения и последние шесть цифр (т. е. 000000 - количество осадков). В последнем 23 столбце указаны данные о часах дождя в мм.
Я хочу, чтобы отделить поле 1-го столбца и станции ID, год, месяц, день и значение кормить в программу, что-то вроде этого:
6153194 1970 11 02 123 000000 000000 000000 000000 000000 000000 000000 000003 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000
И, наконец, временные ряды аналогичным образом:
6153194 1970 11 2 123 0
6153194 1970 11 2 123 0
6153194 1970 11 2 123 0
..................
.................
6153194 1970 11 2 123 0
6153194 1970 11 2 123 0
Моя основная проблема заключается в том, как отделить поля, используя вкладку/пространство, от первого столбца, а затем, как построить тайм-аут из этого? Любая помощь/предложения по этому вопросу
Привет, спасибо, что обратились за помощью! Данные находятся в цифровом формате, а не в виде массива символов. Я могу открыть его непосредственно с помощью команды importdata из текстового поля. В этом случае я получаю ошибку в foll. line: charCell = cellfun (@strsplit, charCell, 'UniformOutput', false); – Poulomi
Спасибо за ваш комментарий. Я думаю, что вам нужно преобразовать данные в массив символов формы, указанной в 'charMatrix', потому что в противном случае у вас будут проблемы с точностью для хранения первого столбца исходного набора данных. Максимальное целое число, поддерживаемое MATLAB, равно 18446744073709551615 (uint64). Если вы можете загрузить файл данных, я могу предоставить полное решение. – user1391279
Привет, я попытался прочитать данные с помощью текстового сканирования: X = textscan (fileID, '% s', 24, 'Delimiter', '\ n'); Есть 24 столбца, поэтому я ставлю 24 здесь. Затем я попытался преобразовать массив ячеек в массив символов, используя команду char. Я получил ошибку «Элементы ячейки должны быть массивами символов». Любое предложение, как мне следует продолжить? – Poulomi