Сохранить переменную из .mat в другой столбец CSV

У меня есть файл .mat с кучей переменных (ячеек). На самом деле это просто вектор-столбец двойников.

Пример того, как выглядит файл .mat. На самом деле файлов больше

Name                Size             Bytes  Class    Attributes

  r2_Fall_1997        1x1                144  cell
  r2_Fall_1998        1x8               1152  cell
  r2_Fall_1999        1x325            46800  cell
  r2_Fall_2000        1x368            52992  cell

  r2_Spring_1997      1x1                144  cell
  r2_Spring_1998      1x8               1152  cell
  r2_Spring_1999      1x325            46800  cell
  r2_Spring_2000      1x368            52992  cell

  r2_Spring_2014      1x1                144  cell
  r2_Summer_1997      1x1                144  cell
  r2_Summer_1998      1x8               1152  cell
  r2_Summer_1999      1x325            46800  cell
  r2_Summer_2000      1x368            52992  cell

Я хочу сохранить каждый сезон (то есть r2_Spring_, r2_Summer_, r2_Fall*) в файле CSV, где каждый год будет отдельным столбцом.

Я использую следующий код прямо сейчас, но он создает файл CSV для каждой переменной, но на самом деле ничего не сохраняет - это 0 байтов. Как я могу сохранить каждую итерацию внутреннего цикла в новый столбец CSV-файла?

load Correlation_PM25_24hr_O3_MDA8

Seasons = {'Spring'; 'Summer'; 'Fall'}
years = 1997:2013;
for s = 1:length(Seasons)
    for y = 1:length(years)
        csvwrite(['r2_' Seasons{s} '_' num2str(years(y)) '.csv'], ['r2_' Seasons{s} '_' num2str(years(y))])
    end
end

person SugaKookie    schedule 27.09.2014    source источник
comment
Я не думаю, что вы можете добавить файл с помощью csvwrite. Вероятно, вам потребуется собрать все данные для файла в матрицу, а затем сделать один вызов csvwrite.   -  person Lukeclh    schedule 27.09.2014
comment
Другая проблема заключается в том, что он даже не сохраняет одну переменную в CSV. Вместо этого сохраняется имя переменной. Как я могу исправить цикл, чтобы он действительно мог сохранять значения?   -  person SugaKookie    schedule 27.09.2014


Ответы (1)


Если я понимаю, что вы пытаетесь сделать, я думаю, вам нужно будет использовать eval() для передачи данных в функцию csvwrite. Что-то вроде этого:

csvwrite(['r2_' Seasons{s} '_' num2str(years(y)) '.csv'], eval(['r2_' Seasons{s} '_' num2str(years(y)))])
person Lukeclh    schedule 27.09.2014