2010-02-20 29 views
9

Tôi đang sử dụng MATLAB để xử lý dữ liệu từ tệp. Tôi đang viết một chương trình lấy dữ liệu đầu vào từ người dùng và sau đó tìm các tệp cụ thể trong thư mục vẽ đồ thị chúng. Tập tin được đặt tên:MATLAB - tải tệp có tên tệp được lưu trữ trong chuỗi

{name} {U} tỷ lệ

{name} là một chuỗi đại diện cho tên của máy tính. {rate} là một số. Đây là mã của tôi:

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

Hiện tại có hai vấn đề:

  1. Khi tôi làm strcat với tiếng nói 'hello', 'U', và tỷ lệ là 50, U sẽ lưu trữ 'helloU2 '- làm cách nào tôi có thể nhận được strcat để thêm {rate} đúng cách?

  2. Dòng tải - làm thế nào để tôi bỏ qua U để tải cố gắng tải chuỗi được lưu trữ trong U?

Rất cám ơn!

+4

1. filename = sprintf ("% s.% D", tên, tỷ lệ)
2. fdata = load (tên tệp) – Mikhail

+0

Cảm ơn. Điều đó đã làm các trick! – Mark

Trả lời

8

Nhận xét của Mikhail ở trên giải quyết được vấn đề trước mắt của bạn.

Một cách sử dụng thân thiện hơn của việc lựa chọn một tập tin:

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

Ngoài việc sử dụng SPRINTF như Mikhail gợi ý, bạn cũng có thể kết hợp các chuỗi và giá trị số bằng cách đầu tiên chuyển đổi các giá trị số để chuỗi sử dụng các chức năng như NUM2STRINT2STR:

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

Một vấn đề với chuỗi trong U là các tập tin đã được trên MATLAB path hoặc trong thảm khốc hiện tại ctory. Nếu không, biến NET_NAME phải chứa đường dẫn đầy đủ hoặc một phần như thế này:

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 của việc sử dụng UIGETFILE là lý tưởng vì nó giúp bạn để đảm bảo bạn có một đường dẫn đầy đủ và chính xác để các tập tin.

Các vấn đề liên quan