После долгих часов поиска и отладки, вот как я заставил его работать в Octave 3.2.4.Использование |
в качестве разделителя (вместо запятой).
Файл данных теперь выглядит следующим образом:
1|Some text
2|More text
3|Text with comma, more text
Вот как его назвать: data = load_data('data/data_file.csv', NUMBER_OF_LINES);
Ограничение: вам нужно знать, сколько строк вы хотите получить.Если вы хотите получить all , то вам нужно написать функцию для подсчета количества строк в файле, чтобы инициализировать cell_array.Это все очень неуклюже и примитивно.Так много для «языков высокого уровня, таких как Octave».
Примечание. После неприятного упражнения заставить это работать, кажется, что Octave не очень полезен, если вы не любите тратить свое время на написание кода для выполнения самых простых вещей,Лучше выбрать R, Python или C # / Java с библиотекой машинного обучения или матриц.
function all_messages = load_data(filename, NUMBER_OF_LINES)
fid = fopen(filename, "r");
all_messages = cell (NUMBER_OF_LINES, 2 );
counter = 1;
line = fgetl(fid);
while line != -1
separator_index = index(line, '|');
all_messages {counter, 1} = substr(line, 1, separator_index - 1); % Up to the separator
all_messages {counter, 2} = substr(line, separator_index + 1, length(line) - separator_index); % After the separator
counter++;
line = fgetl(fid);
endwhile
fprintf("Processed %i lines.\n", counter -1);
fclose(fid);
end