Как Вы создаете матрицу из текстового файла в MATLAB?

У меня есть текстовый файл, который имеет 4 столбца, каждый столбец, имеющий 65 536 точек данных. Каждый элемент в строке разделяется запятой. Например:

X,Y,Z,AU
4010.0,3210.0,-440.0,0.0
4010.0,3210.0,-420.0,0.0
etc.

Так, у меня есть 65 536 строк, каждая строка, имеющая 4 значения данных как показано выше. Я хочу преобразовать его в матрицу. Я пытался импортировать данные от текстового файла до файла Excel, потому что тот путь его легкое для создания матрицы, но я потерял больше чем половину данных.

9
задан Amro 28 August 2012 в 13:45
поделиться

4 ответа

Если все записи в вашем файле числовые, вы можете просто использовать a = load ('file.txt') . Он должен создать матрицу 65536x4 a . Это даже проще, чем csvread

22
ответ дан 4 December 2019 в 06:01
поделиться

Самый простой способ сделать это - использовать функцию MATLAB csvread .

Существует также этот инструмент, который читает файлы CSV.

Вы можете сделать это самостоятельно без особых трудностей: просто переберите каждую строку в файле, разделите ее на запятые и поместите в свой массив.

7
ответ дан 4 December 2019 в 06:01
поделиться

Вместо того, чтобы возиться с Excel, вы должны иметь возможность читать текстовый файл непосредственно в MATLAB (используя функции FOPEN , FGETL , ] FSCANF и FCLOSE ):

fid = fopen('file.dat','rt');  %# Open the data file
headerChars = fgetl(fid);      %# Read the first line of characters
data = fscanf(fid,'%f,%f,%f,%f',[4 inf]).';  %'# Read the data into a
                                              %# 65536-by-4 matrix
fclose(fid);  %# Close the data file
8
ответ дан 4 December 2019 в 06:01
поделиться

Предлагаем вам ознакомиться с dlmread и textcan .

dlmread похож на csvread , но поскольку он может обрабатывать любой разделитель (табуляция, пробел и т. д.), я обычно использовать его, а не csvread .

textcan - настоящая рабочая лошадка: множество опций, + он работает с открытыми файлами и немного более надежен для обработки "плохого" ввода (например, не -числовые данные в файле).Его можно использовать как fscanf в предложении gnovice, но я думаю, что это быстрее (хотя не цитируйте меня).

5
ответ дан 4 December 2019 в 06:01
поделиться
Другие вопросы по тегам:

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