Работа с CSV-файлами в Scilab

Файлы формата 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

Спасибо, очень полезная функция, еще б расширить, для произвольного колличества столбцов;) а вообще, просто и наглядно.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • LaTex commands embedded in text will be interpreted and rendered. Additional information can be found at DruTex Documentation Pages
    • Assists automatic numbering of tex, equation, and equations environments.
    • Provides different environments to create rendered images (especially maths).
    • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
    • Доступны HTML теги: <table> <thead> <tbody> <tr> <th> <td> <h1> <h2> <h3> <h4> <h5> <h6> <a> <img> <div> <span> <p> <em> <i> <strong> <b> <strike> <s> <u> <sup> <sub> <cite> <blockquote> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <br> <hr>
    • Строки и параграфы переносятся автоматически.
    • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
    • You can enable syntax highlighting of source code with the following tags: <geshi>. The supported tag styles are: <foo>, [foo]. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
    • Images can be added to this post.

Подробнее о форматировании

КАПЧА
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.
Синдикация материалов