Octave - преобразование числовых строк из файла импорта CSV в числовую матрицу - PullRequest
0 голосов
/ 04 октября 2018

Я пишу код для импорта данных из файла CSV и преобразования его в матрицу Octave.Импортированные данные можно увидеть в следующем снимке:

DataImportedFromCSV

На следующем шаге я добавил следующую команду для удаления запятых и "":

meas_raw_temp = strrep(meas_raw_temp,',',' ')

И тогда я получаю формат данных в следующем виде:

DataConvertedWithoutComma

Проблема в том, что Октава все еще видит данныекак 1 одиночный одномерный массив.то есть, когда я использую команду размера, я получаю одно число, т.е. 2647. Что мне нужно, это матричный вывод, где каждая строка снимков является строкой матрицы, а каждый элемент отделен.

Есть мысли?

1 Ответ

0 голосов
/ 04 октября 2018

Вот что происходит.

  1. У вас есть одномерный (только строки) ячейка массив.Каждый элемент (т. Е. Ячейка) в массиве ячеек содержит одну строку .

  2. Ваши строки содержат запятые и буквальные двойные кавычки.Вам удалось избавиться от них всех, заменив их на месте «пустой строкой».Хорошо.Однако это не меняет того факта, что в каждой ячейке по-прежнему есть одна строка.

  3. Вам необходимо создать цикл for для обработки каждой ячейки в отдельности.Для каждой ячейки разбейте строку на ее компоненты (т. Е. «Токены»), используя ' ' (т. Е. Пробел) в качестве разделителя.Вы можете использовать либо strsplit, либо strtok, чтобы добиться этого.Обратите внимание, что токены, которые вы получаете из этого процесса, по-прежнему имеют строковый тип.Если вам нужны числа, вам нужно преобразовать их (например, используя str2double или что-то подобное).

  4. Для каждой обрабатываемой ячейки найдите способ заполнить соответствующую строкупредварительно выделенная матрица.

  5. Как указал Адриан в комментариях, точный способ, которым вы выполняете вышеуказанные шаги программно, может варьироваться, поэтому я не буду предоставлять диапазонвозможные способы, которыми вы могли бы это сделать, и я ограничиваю ответ на этот вопрос приведенными выше шагами, как вы должны думать о решении вашей проблемы.

Если вы попытаетесьшаги и застряли на «программный» аспект вашей реализации, не стесняйтесь задавать еще один вопрос stackoverflow.

...