我目前正在Octave中执行一个程序,我希望用户能够插入他想要加载的文件。有问题的文件是.mat文件,并加载
load(“filename.mat”)
我正在考虑做这样的事情:
file = input(“什么是文件名:”)
加载(“文件”)
但这没效果......
有人有任何提示吗?
答案 0 :(得分:2)
这可能是因为您需要输入用单引号括起来的文件名:'filename'。 (注意:我使用的是MATLAB,但在Octave中它的工作方式应该相同)。
作为替代方案,您可以使用inputdlg
来请求用户输入。它为您提供了很大的灵活性,因为您可以在提示中添加字段,例如文件扩展名或其他。
这是一个简单的例子:
clear
clc
prompt = {'Enter file name'};
dlg_title = 'Input';
num_lines = 1;
def = {'Dummy file'};
answer = inputdlg(prompt,dlg_title,num_lines,def)
提示符如下所示:
您可以像这样获取asnwer:
name = answer{1};
最后添加扩展名以加载.mat文件:
filename = strcat(name,'.mat')
S = load(filename)
使用文件扩展名一次性完成:
prompt = {'Enter file name'; 'Enter file extension'};
dlg_title = 'Input';
num_lines = 1;
def = {'Dummy file'; '.mat'};
answer = inputdlg(prompt,dlg_title,num_lines,def)
name = answer{1};
extension = answer{2};
filename = strcat(name,extension)
S = load(filename)
希望有所帮助!
答案 1 :(得分:1)
我使用了Benoit_11的方法,但改为输入,因为inputdlg似乎不适用于Octave。
明确
CLC
name = input('输入文件名,不带文件扩展名:',' s')
filename = strcat(name,' .mat')
S = load(filename)