Чтение текста оценивает в matlab переменные от ASCII-файлов

Рассмотрите следующий файл

var1 var2 variable3
1     2    3
11    22   33

Я хотел бы загрузить числа в матрицу и заголовки столбцов в переменную, которая будет эквивалентна:

variable_names = char('var1', 'var2', 'variable3');

Я не возражаю для разделения имен и чисел в двух файлах, однако готовя matlab файлы кода, и eval'ing их не является опцией.

Обратите внимание, что может быть произвольное число переменных (столбцы)

7
задан Amro 28 August 2012 в 12:31
поделиться

3 ответа

Я предлагаю importdata для операций как это:

d = importdata('filename.txt');

Возврат является структурой с числовыми полями в участнике, названном 'данными' и заголовками столбцов в поле, названном 'colheaders'.

Другой полезный интерфейс для импорта данных управления как они является классом 'набора данных', доступным на Панели инструментов Статистики.

9
ответ дан 6 December 2019 в 19:44
поделиться

Просто используйте textscan со спецификаторами другого формата.

fid = fopen(filename,'r');
heading = textscan(fid,'%s %s %s',1);
fgetl(fid); %advance the file pointer one line
data = textscan(fid,'%n %n %n');%read the rest of the data
fclose(fid);

В этом случае 'заголовок' будет массив ячеек, содержащий ячейки с каждым заголовком столбца внутри, таким образом, необходимо будет изменить их в массив ячеек строк или независимо от того, что случается так, что Вы хотите. 'данные' будут массивом ячеек, содержащим числовой массив для каждого столбца, который Вы читаете, таким образом, у Вас будут кошке они вместе для создания одной матрицы.

1
ответ дан 6 December 2019 в 19:44
поделиться

Если заголовок находится на первой строке затем

A = dlmread(filename,delimString,2,1);

считает числовые данные в Матрицу A.

Можно затем использовать

fid = fopen(filename)
headerString = fscanf(fid,'%s/n') % reads header data into a string
fclose(fid)

Можно затем использовать strtok для разделения headerString на массив ячеек. Один подход, я могу думать о соглашении с неизвестным числом столбцов

Править

зафиксированный fscanf вызов функции

3
ответ дан 6 December 2019 в 19:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: