2015-11-19 4 views
0

У меня есть 672 образцов, как это в .txt файл:Как импортировать эти данные и экспортировать их в файл excel?

{  
sleep:1360.36, 
eat:4.36, 
live:16.37, 
travel:22.18, 
work:22, 
school:0.84, 
vt:386.87 
}, 

Я хочу, чтобы поместить их в файл первенствовать где {sleep, eat, live, travel, work, school, vt} представлены в строке и в каждом образце, представленных в колонках, с номером корреспондент соответствие друг , Я никогда не рассматривал текстовые файлы, следуя этому формату на Matlab, поэтому я понятия не имею, как это сделать. Может кто-нибудь мне помочь?

+1

wait, поэтому вы хотите экспортировать это в csv (то есть, что Excel может открыть)? Или вы хотите импортировать их в Matlab, я смущен. Ваш разделитель строк «,» и разделитель столбцов «:», вы можете поместить его в excel, установив разделители или в matlab, используя 'textscan' или' dmlread' – GameOfThrows

+0

Спасибо за ваш ответ. Я хочу экспортировать их в .csv и думал, что лучший способ сделать это будет через matlab. Я думал об этом, потому что это данные от 15 до 15 минут в течение одной недели, и я хотел превратить их в 1 часовые сэмплы, усреднив их по группам из 4 (извините, если это звучит сложно). Возможно ли это или слишком сложно? –

+0

Нет, это не слишком сложно. Однако, как правило, ожидаются некоторые доказательства первоначальных усилий. Проведите небольшое исследование по открытию и чтению части файла в цикле. Поместите что-нибудь вместе, и если у вас возникнут проблемы, вернитесь и отредактируйте свой вопрос, включив свой код, ошибки (-ы), которые вы получаете, и где происходят ошибки. – Jeeped

ответ

0

очень возможно, вы можете сделать это в Matlab, если вы знакомы с ним (хотя это также довольно легко сделать в excel). Для загрузки в ваш файл (нет необходимости его конвертировать, Matlab считывает файлы txt). вы можете сделать что-то вроде:

fileID = fopen('test2.txt'); %//Your file name 
Input = textscan(fileID,'%s %f','Delimiter',':'); 
GoodRows = find(~isnan(Input{2})); 
column1 = Input{1}(GoodRows,:); //Column 1 is in the format of Cells (since you are storing Strings 
column2 = Input{2}(GoodRows,:); //Column 2 is in the format of a Matrix, which will allow you to take numbers and do averages etc. 

ячейки и доли индексов матрицы, так что вы можете переформатировать свои данные в конце концов, чтобы клетка и экспортировать ее в Matlab.

column1 = 

'sleep' 
'eat' 
'live' 
'travel' 
'work' 
'school' 
'vt' 

column2 = 

1.0e + 003 *

1.3604 
0.0044 
0.0164 
0.0222 
0.0220 
0.0008 
0.3869 

============== EDIT =============== Если у вас есть несколько столбцов после строки, то есть: sleep, 1.5,1.4,1.3

Если вы хотите продолжать использовать textscan, вам нужно указать, сколько столбцов есть. Это делается с помощью:

Input = textscan(fileID,'%s %f %f %f %f','Delimiter',':'); //% add %f for each numeric column. 

Или

Input = textscan(fileID,'%s repmat('%f',[1,N])]','Delimiter',':'); %// where N is the number of numeric columns you have. 
+0

Еще раз спасибо. Я пробовал ваш совет, но он не признает столбец1 как тот же, когда он переходит к следующему образцу: Пример того, что я получаю: спать, есть, жить, путешествовать, работать, школа, vt, спать, есть, жить, Я только хочу, чтобы эти переменные были распознаны один раз, поэтому я получаю вид таблицы следующим образом: сон есть живая поездка работа школа Vt 1 1,36 0,044 0,164 0,0222 0,0220 0,0008 0,3869 , где 1,2,3,4,5 являются образцы. Надеюсь, я сделал себя ясно –

+0

Я отправил этот комментарий в качестве ответа, чтобы он был более понятным –

+0

@ JoãoFrancisco Обновлен ответ, чтобы включить несколько столбцов. – GameOfThrows

0

Вы можете импортировать данные из Excel в Matlab с помощью xlsread и экспорта данных с использованием xlswrite. См documentation

Синтаксис

xlswrite(filename,A,sheet,xlRange) 

, где A может быть массив ячеек, где клетки содержат количество строк, sheet это имя листа Excel и xlRange является диапазон в листе Excel (пример: A1: B5). Пример

Код:

A = {'Column1', 'Column2', 'Column3'; 1, 2, 3}; 
xlswrite('example.xls', A, 'ExampleSheet', 'A1:B3'); 

Некоторые советы:

  • Если вы знаете, количество строк и columsn ваших данных только во время выполнения, но по-прежнему хотят, чтобы дать диапазон вы должны каким-то образом Смонтировать (строки легко с помощью sprintf, имена столбцов сложнее (A, B, C, .., Z, AA, AB, ...))
  • Если на вашем компьютере нет Excel, вы будут получать файлы csv (см. документацию)
  • Хотя каждый звонок до xlswrite возвращается довольно быстро, система все еще работает. Если еще один вызов xlswrite приходит слишком рано, вы можете получить неожиданные (зависящие от задержки) ошибки, чтобы избежать их, чтобы ждать достаточно времени. Я обычно собираю свои данные, а затем пишу все в файл excel за один раз.

 Смежные вопросы

  • Нет связанных вопросов^_^