2015-01-08 3 views
-1

Предположим, что мы имеем следующие данныеИмпорт файлов в Matlab с заголовками

Month High  Low Average 
    1 45.36 33.84 39.6 
    2 50.87 35.98 43.43 
    3 56.05 38.55 47.3 
    4 60.49 41.36 50.92 
    5 67.17 46.92 57.05 
    6 73.82 52.8 63.31 
    7 79.72 56.43 68.07 
    8 80.14 56.79 68.47 
    9 74.54 51.83 63.18 
    10 64.08 44.95 54.52 
    11 52.66 39.54 46.1 
    12 45.59 34.75 40.17 

Я знаю, что мне нужно функцию fprintf импортировать файл, который содержит заголовки. У нас есть 4 столбца и 12 строк, поэтому как я могу использовать функцию fprintf или какую функцию использовать для успешного импорта данных? Существует this code, но я не уверен, если он надежный. Могу ли я использовать что-то из самого Matlab?

+0

http://uk.mathworks.com/help/matlab/data-import-and-export.html (я понятия не имею, где вы получили 'fprintf', это для экспорта/записи файлов, а не для импорта/чтение их) – nkjt

+0

В каком формате представлены ваши данные? .txt, .xlsx, .csv ...? –

+0

.txt, как я могу использовать эти формулы? –

ответ

2

fscanf для файлов и sscanf для строк. Синтаксис аналогичен синтаксису fprintf, с которым вы знакомы. The matlab documentation provides a comprehensive set of examples to get you started.

Менее гибкий, но достаточный для использования, вероятно, будет dlmread.

при условии, что ваши данные в data.txt и вы хотели бы, чтобы пропустить первую строку (как это заголовок) делать:

>> x = dlmread('data.txt', '', 1, 0) 

x = 

    1.0000 45.3600 33.8400 39.6000 
    2.0000 50.8700 35.9800 43.4300 
    3.0000 56.0500 38.5500 47.3000 
    4.0000 60.4900 41.3600 50.9200 
    5.0000 67.1700 46.9200 57.0500 
    6.0000 73.8200 52.8000 63.3100 
    7.0000 79.7200 56.4300 68.0700 
    8.0000 80.1400 56.7900 68.4700 
    9.0000 74.5400 51.8300 63.1800 
    10.0000 64.0800 44.9500 54.5200 
    11.0000 52.6600 39.5400 46.1000 
    12.0000 45.5900 34.7500 40.1700 

--edit-- из документации:

dlmread (имя файла, разделитель, R, C) считывает данные, верхний левый угол находится в строке R и столбце C в файле, используя указанный разделитель. Ввод имени файла представляет собой строку, заключенную в одинарные кавычки. Значения R и C основаны на нуле, так что R = 0, C = 0 задает первое значение в файле.

Теперь, как мы хотели бы использовать разделитель по умолчанию (любое количество пробелов), но должны предоставить один, как мы также обеспечиваем R OW и C ол аргументы, мы обеспечиваем пустую строку.

+0

Мне нужен пример, чтобы лучше понять –

+0

, если я хотел бы включить заголовки? Спасибо за помощь –

+0

Как/почему вы хотели бы включить заголовки? Я предполагаю, что заголовки всегда будут одинаковыми. Но скажите, что вы хотели бы включить их. Matlab не сможет представить их вам как массив так же, как сейчас. Потому что теперь он возвращает вам прямоугольный массив чисел, но заголовки не являются числами. (есть массивы ячеек и datamatrices, но это сделает все намного сложнее ..) – Lanting

0

Другой вариант - использовать importdata. Это может быть немного медленнее, но неплохо понять, что такое заголовок и опустить его.

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