Как форматировать массив в Matlab - PullRequest
0 голосов
/ 11 ноября 2018

Я работаю в сценарии matlab, который открывает группу текстовых файлов и читает их содержимое. Содержание XY двойных точек, разделенных "". Я сохраняю прочитанные значения в массиве так:

    dataArray= textscan(fileID, formatSpec, 'Delimiter', delimiter, 'MultipleDelimsAsOne', true, 'EmptyValue' ,NaN, 'ReturnOnError', false);  

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

for i = 1:length(files) 
    %% Open the text file.
    fileID = fopen([path files{i}],'r');
        dataArray = cat(1, dataArray, textscan(fileID, formatSpec, 'Delimiter', delimiter, 'MultipleDelimsAsOne', true, 'EmptyValue' ,NaN, 'ReturnOnError', false));
    end

    %% Close the text file.
    fclose(fileID);
end

Результат этого:

enter image description here

Где каждая клетка

enter image description here

Я хочу, чтобы все значения отображались непрерывно, как на втором рисунке. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Обратите внимание, что на вашем примере изображения у вас разные типы данных. Столбцы 1 и 2 имеют тип double, а 3 - тип ячейки. Чтобы сконцентрировать все в одной переменной, необходимо, чтобы все было типа double. Проверьте переменную formatSpec.

Кроме того, ваш пример кода не работает из-за дополнительного end.

0 голосов
/ 11 ноября 2018

Кошка должна работать, но для вашего примера [dataArray; textscan(...)] выглядит мне еще удобнее. Сначала проверьте, действительно ли то, что вы загружаете через тексты, имеет ожидаемый формат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...