MATLAB: fscanf - сохраняющая столбчатая структура - PullRequest
2 голосов
/ 16 февраля 2012

Я пытаюсь загрузить большой текстовый файл в MATLAB. Файл имеет следующий формат:

567.1   339.8   13923645.0  1.3 0.6
568.0   338.5   13923646.0  1.8 0.9
569.4   336.9   13923647.0  2.4 1.1
570.8   337.1   13923648.0  3.3 1.0
570.8   338.8   13923649.0  4.3 0.6

Это предназначено для импорта в виде массива [:, 5]. Однако я использую команду:

inputData = fscanf(fid, '%g\t').';

Это приводит к тому, что числа импортируются как одномерный вектор:

inputData = [567.1 339.8 13923645.0 1.3 0.6 568.0 338.5 13923646.0 1.8 0.9 ... etc]

Как мне сохранить структуру из 5 столбцов?

Ответы [ 4 ]

1 голос
/ 16 февраля 2012

Исходя из вашего другого вопроса , где вы разбиваете inputData позже на 5 отдельных массивов, я бы просто прочитал текстовый файл в его 5 отдельных массивах с самого начала.

[x y currentSampleTime velocityX velocityY] = textread('data.txt','%f%f%f%f%f');
1 голос
/ 16 февраля 2012

Попробуйте использовать команду load. Это самый простой в этом случае

   x = load('myFile.txt');
0 голосов
/ 16 февраля 2012

Если у вас есть только числовые данные, самый простой способ будет использовать DLMREAD :

inputData = dlmread(filename,'\t');
0 голосов
/ 16 февраля 2012

Вы можете использовать функцию reshape, чтобы создать матрицу x-на-5 из вектора строки.

reshape(inputData, 5, []).'
...