2014-10-26 4 views
0

Я пытаюсь прочитать следующую последовательность чисел из текстового файла:Чтение вектор-столбец из .txt файла в MATLAB

1323211 
11 
1163211 
11 
1512321112 
14096321 
2 
1256321221024642 
1 
1 
1256321221024642 
10296844 
4102782 
3609910 
0 
492872 
492840 
61116 
0 
01201 
01201 
00149 
00000 
1989016 
1982261 
436984 
6755 
6739 
6734 
0 
00034 
00034 
00034 
00000 

Для того, чтобы сделать это, я использую метод описанный здесь: http://www.mathworks.se/help/matlab/ref/fscanf.html#bt_j35z-2_1

я могу проверить содержимое файла с помощью команды type, но чтение идет не так, по какой-то причине, что дает этот выход:

>> fid = fopen('file.txt', 'r') 

fid = 

    5 

>> A = fscanf(fid, '%f') 

A = 

    1.0e+15 * 

    0.0000 
    0.0000 
    0.0000 
    0.0000 
    0.0000 
    0.0000 
    0.0000 
    1.2563 
    0.0000 
    0.0000 
    1.2563 
    0.0000 
    0.0000 
    0.0000 
     0 
    0.0000 
    0.0000 
    0.0000 
     0 
    0.0000 
    0.0000 
    0.0000 
     0 
    0.0000 
    0.0000 
    0.0000 
    0.0000 
    0.0000 
    0.0000 
     0 
    0.0000 
    0.0000 
    0.0000 
     0 

я использую %f в примере, но %d возвращает пустой вектор. csvread, dlmread и textscan все дают одинаковый результат. Что вызывает это?

+1

Кажется, что он работает правильно. Формат отображаемого вывода может сбить вас с толку. Используйте 'format long' или введите' A (1) ',' A (2) 'и т. Д., И вы увидите, что они являются правильными значениями. –

+0

@ LuisMendo Конечно! Благодаря! – TheExplosiveSheep

ответ

1

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

format long 

Другая вещь, которую вы можете сделать, это нажать на «А» в окне рабочей области, чтобы увидеть матрицу в таблице. Не забудьте проверить вкладку «Вид» и выбрать «Формат отображения номера», который вы хотите использовать.