MATLAB - файл загрузки, имя файла которого хранится в строке

Я использую MATLAB для обработки данных из файлов. Я пишу программу, которая берет вход от пользователя и затем определяет местоположение конкретных файлов в каталоге, изображающем их в виде графика. Файлы называют:

{имя} U {уровень}

{имя} является строкой, представляющей название компьютера. {Уровень} является числом. Вот мой код:

%# get user to input name and rate
NET_NAME = input('Enter the NET_NAME of the files: ', 's');
rate = input('Enter the rate of the files: ');

U = strcat(NET_NAME, 'U', rate)
load U;

Ux = U(:,1);
Uy = U(:,2);

В настоящее время существует две проблемы:

  1. Когда я делаю strcat с говорят 'привет', 'U', и уровень равняется 50, Вы сохраните 'helloU2' - как я могу добраться strcat добавлять {уровень} правильно?

  2. Линия нагрузки - как я разыменовываю U так загрузка, пытается загрузить строку, сохраненную в U?

Большое спасибо!

9
задан Zaheer Ahmed 16 June 2013 в 11:58
поделиться

2 ответа

Комментарий Михаила выше решает вашу непосредственную проблему.

Более удобный способ выбора файла:

[fileName,filePath] = uigetfile('*', 'Select data file', '.');
if filePath==0, error('None selected!'); end
U = load( fullfile(filePath,fileName) );
8
ответ дан 4 December 2019 в 20:23
поделиться

В дополнение к использованию SPRINTF , как предложил Михаил, вы также можете комбинировать строки и числовые значения, сначала преобразовав числовые значения в строки, используя такие функции, как NUM2STR и INT2STR :

U = [NET_NAME 'U' int2str(rate)];
data = load(U);  %# Loads a .mat file with the name in U

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

NET_NAME = 'C:\My Documents\MATLAB\name';  %# A complete path
NET_NAME = 'data\name';  %# data is a folder in the current directory

Предложение Амро об использовании UIGETFILE идеально, поскольку помогает вам убедиться, что у вас есть полный и правильный путь к файлу.

3
ответ дан 4 December 2019 в 20:23
поделиться
Другие вопросы по тегам:

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