Объединение CSV-файлов разного размера - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь сделать анализ данных + импорт в Excel намного проще.У меня есть 3 разных типа данных, назовите их data1, data2, data3.Я сохранил их в массиве ячеек, measurements = cell(3,99) "3" представляет 3 различных типа данных, и каждое число 1-99 представляет один объект, который я измерил.

Я пытаюсь объединить всефайлы каждого типа вместе, так что у меня есть 1 файл Excel для data1, 1 файл для data2 и 1 для data3.

data1 и data2 - векторы строк, а data3 - двумерные матрицы.Каждая запись может быть разного размера (хотя ни одна из них не имеет большого значения).

Мои текущие попытки:

for ii=1:99
      data1File = sprintf('data1_%d.csv',ii);
      data2File = sprintf('data2_%d.csv',ii);
      data3File = sprintf('data3_%d.csv',ii);
      csvwrite(data1File, measurements{1,ii});
      csvwrite(data2File, measurements{2,ii});
      csvwrite(data3File, measurements{3,ii});
  end 

Это просто дало мне 99 CSV-файлов каждого типа данных, что ужасно неэффективно.Я пробовал много разных способов объединить их (например, dlmwrite), но безуспешно.

также пытался:

cell2csv('data1.csv',measurements(1,:), ',','2018','.');

Как ни странно, это работало только на data1, несмотря на тот факт, что data2 также выражается как вектор строки.Однако data1 содержит большие числа (обычно близкие к 5.1 * 10 ^ 4), поэтому я подумал, что десятичная запятая могла измениться.Я пытался решить эту проблему весь день без удачи.Любые рекомендации?

1 Ответ

0 голосов
/ 05 июня 2018

Вы пытались изменить "{" на "(" в этом фрагменте кода? И удалить цикл for.

csvwrite(data1File, measurements{1,ii}); %change this to this
csvwrite(data1File, measurements(1,:)); %and get it out of the for loop

Тогда он видит результат измерений как 1 массив, а не как 99разные отдельные выходы.

Ваш файл data1File создает 99 файлов с разными именами, поэтому, конечно, у вас будет 99 разных файлов.

* edit, это для dlmwrite:
Также при попытке добавить что-либо к файлу вам нужно использовать дополнение '-append'.

csvwrite(data1File, measurements(1,:),'-append'); %like so

Если это не решит проблему, я предлагаю посмотреть наобмен файлами, вот что я нашел Cell2csv .

...