Чтение текстового файла в матрицу в Matlab с неизвестной длиной строки

У меня есть текстовый файл, который отформатирован примерно так:

1 2 3 4 5 6
7 8 9
0 11 2 32 45 6 6
1 2

Я хочу прочитать каждую строку и построить линию для каждой строки. Оси x - [1: row.length], оси y - каждая строка.


person liu    schedule 22.10.2012    source источник


Ответы (2)


fid = fopen('dat.txt');

line = fgetl(fid);

% if you want everything on the same axis, set it up here
axis([0,20,-10,10])
hold all    

while ischar(line)
  yy = str2num(line);
  xx = 1:length(yy);
  plot(xx,yy)
  line = fgetl(fid);
end
hold off

fclose(fid);

Обратите внимание, что feof() не так хорош с fgetl(), см. здесь.

person engineerC    schedule 22.10.2012

Самый простой способ сделать это — проверить определенные символы. Проверьте символ новой строки, чтобы определить, находитесь ли вы в конце текущей строки, и функцию конца файла, чтобы увидеть, находитесь ли вы в конце файла.

Взгляните на: http://www.mathworks.com/help/matlab/ref/feof.html

person Yogi patel    schedule 22.10.2012