2010-02-20 6 views
9

Estoy usando MATLAB para procesar datos de archivos. Estoy escribiendo un programa que toma datos del usuario y luego localiza los archivos particulares en el directorio graficando. Los archivos se denominan:MATLAB - carga el archivo cuyo nombre de archivo está almacenado en una cadena

{nombre} {T} tasa

{nombre} es una cadena que representa el nombre del equipo. {rate} es un número. Aquí está mi código:

%# 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); 

Actualmente hay dos problemas:

  1. Cuando hago la strcat con decir 'hola', 'U', y la tasa es de 50, T almacenará 'helloU2 '- ¿cómo puedo obtener strcat para anexar {rate} correctamente?

  2. La línea de carga: ¿cómo debo desreferenciar U para que la carga intente cargar la cadena almacenada en U?

¡Muchas gracias!

+4

1. filename = sprintf ("% s.% D", nombre, velocidad)
2. fdata = cargar (nombre de archivo) – Mikhail

+0

Gracias. Eso hizo el truco! – Mark

Respuesta

8

El comentario de Mikhail anterior resuelve tu problema inmediato.

Una forma más fácil de usar de seleccionar un archivo:

[fileName,filePath] = uigetfile('*', 'Select data file', '.'); 
if filePath==0, error('None selected!'); end 
U = load(fullfile(filePath,fileName)); 
3

Además de utilizar SPRINTF como Mikhail sugirió, también puede combinar cadenas y valores numéricos convirtiendo en primer lugar los valores numéricos en cadenas utilizando funciones como NUM2STR y INT2STR:

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

Un problema con la cadena en U es que el archivo tiene que estar en el MATLAB path o en el actual grave ctory. De lo contrario, la variable NET_NAME tiene que contener una ruta completa o parcial de esta manera:

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

Amro's suggestion de utilizar UIGETFILE es ideal, ya que le ayuda a asegurarse de que tiene una ruta completa y correcta en el archivo.

Cuestiones relacionadas