我正在使用MATLAB处理文件中的数据。我正在编写一个程序,它从用户那里获取输入,然后将特定文件定位在绘制它们的目录中。文件命名为:
{名称} U {速率}
{name}是表示计算机名称的字符串。 {rate}是一个数字。这是我的代码:
%# 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);
目前存在两个问题:
当我strcat
说“你好”,“你好”,费率为50时,你会存储'helloU2' - 我怎样才能strcat
追加{rate}好吗?
加载线 - 如何取消引用U,以便加载尝试加载存储在U中的字符串?
非常感谢!
答案 0 :(得分:8)
米哈伊尔上面的评论解决了你眼前的问题。
选择文件的用户友好方式:
[fileName,filePath] = uigetfile('*', 'Select data file', '.');
if filePath==0, error('None selected!'); end
U = load( fullfile(filePath,fileName) );
答案 1 :(得分:3)
除了使用像Mikhail建议的SPRINTF之外,您还可以使用NUM2STR和INT2STR等函数将数值转换为字符串,从而组合字符串和数值:
U = [NET_NAME 'U' int2str(rate)];
data = load(U); %# Loads a .mat file with the name in U
U
中字符串的一个问题是该文件必须位于MATLAB path或当前目录中。否则,变量NET_NAME
必须包含完整或部分路径,如下所示:
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使用UIGETFILE是理想的,因为它可以帮助您确保拥有完整且正确的文件路径。