Загрузка нескольких файлов .txt одновременно в графический интерфейс MATLAB

Я хотел бы получить некоторые рекомендации о том, как импортировать несколько файлов .txt, содержащих данные, разделенные запятой, в графическом интерфейсе MATLAB. После загрузки файлов у меня есть функция, которая будет манипулировать всеми данными из каждого файла .txt.

Любая помощь приветствуется.


person Mark S    schedule 07.08.2017    source источник
comment
Я предполагаю, что вы неправильно используете здесь слово «загрузить», и вы в основном пытаетесь импортировать данные в рабочее пространство Matlab, верно? Если это стандартный файл .csv, вы можете попробовать csvread (наберите help csvread, чтобы увидеть синтаксис и примеры). Если это более сложный файл, то это зависит от файла. Что касается того, как выбирать файлы, вы можете попробовать uigetfile для выбора вручную, или, если вы хотите выбрать их в цикле for, вы можете попробовать создать имена файлов, используя sprintf и fullfile для создания правильных имен файлов.   -  person Tasos Papastylianou    schedule 08.08.2017
comment
У вас уже есть графический интерфейс? Вы хотите, чтобы пользователь выбирал много файлов одновременно? Вы хотите, чтобы они выбирали по одному, а потом вы ставили имена и разделяли запятыми?   -  person Laleh    schedule 08.08.2017
comment
Марк, вы все еще работаете над этим или уже нашли решение?   -  person informaton    schedule 12.08.2017


Ответы (2)


Самый простой способ импортировать несколько файлов:

  • Используйте графический интерфейс импортера файлов в Matlab и сгенерируйте сценарий после того, как
    выберете нужные параметры.
  • Генерировать скрипт (в импортере есть кнопка для генерации скрипта)
  • Измените сценарий с помощью цикла for, чтобы загрузить несколько файлов и сохранить их в переменной (массив ячеек может обрабатывать данные разных размеров в каждом файле).
person MosGeo    schedule 07.08.2017

Попробуйте uigetfile запустить диалоговое окно для загрузки файлов. Установите 'MultiSelect' на 'on', чтобы выбрать несколько файлов одновременно.

Вот пример вызова:

[filenames, pathname] = uigetfile({'*.txt; *.csv','Comma separated values';...
           '*.*','All files'},'Select files','MultiSelect','on');

Вам нужно будет проверить, действительно ли пользователь выбрал файл или он отменил его.

Если я правильно понял ваш вопрос, у вас уже есть графический интерфейс. В этом случае вам просто нужно добавить вышеуказанный вызов к назначенной вами функции обратного вызова (т.е. к тому, что вы нажмете, чтобы вызвать этот интерфейс загрузки файла).

person informaton    schedule 08.08.2017