Файлы формата CSV широко используются при работе с базами данных (например, MySQL позволяет импорт и экспорт записей в этом формате). Как правило, файл в таком формате содержит в себе множество значений, например, это могут быть результаты какого-либо эксперимента.
Большинство функций Scilab работает с переменными и массивами. Поэтому, нам надо загрузить данные из CSV-файла в массивы и переменные Scilab. В Scilab нет функций для работы непосредственно с файлами CSV, однако, в нём достаточно функций для удобной работы с любыми файлами, и поэтому можно без труда написать простенькую функцию загрузки значений из файла CSV.
Пусть у нас CSV-файл, из которого нам надо загрузить данные, имеет следующую структуру:
1230521285 1285 1230606038 1289 1230629291 1290 1230692491 1291 1230778569 1293
Каждая строка - это пара чисел: первое число есть время в формате UNIX, а второе - значение некоторой переменной, измеренное в этот промежуток времени. Числа разделены пробелом. Необходимо считать эти числа в массивы x(i) и y(i) соответственно.
Вот код функции, реализующей это:
function [x, y] = readfile(filename) [fd,err] = mopen(filename,'r'); i = 1; while ~meof(fd) x(i) = mfscanf(fd, '%lg'); y(i) = mfscanf(fd, '%lg'); i = i + 1; end; mclose(fd); x = x'; y = y'; endfunction
Если у вас есть какие-то дополнения или комментарии, мы будем рады их услышать - комментируйте данную статью!
Комментарии
Re: Работа с CSV-файлами в Scilab
Срд, 22.04.2009, 09:25 — comm (не проверено)Спасибо, очень полезная функция, еще б расширить, для произвольного колличества столбцов;) а вообще, просто и наглядно.
Отправить комментарий