【发布时间】:2015-03-17 13:29:09
【问题描述】:
我目前正在 Octave 中执行一个程序,我希望用户能够插入他想要加载的文件。有问题的文件是 .mat 文件并加载了
加载(“文件名.mat”)
我正在考虑做这样的事情:
file=input("文件名是什么:")
加载(“文件”)
但这没有用......
有人有什么建议吗?
【问题讨论】:
我目前正在 Octave 中执行一个程序,我希望用户能够插入他想要加载的文件。有问题的文件是 .mat 文件并加载了
加载(“文件名.mat”)
我正在考虑做这样的事情:
file=input("文件名是什么:")
加载(“文件”)
但这没有用......
有人有什么建议吗?
【问题讨论】:
这可能是因为您需要输入用单引号括起来的文件名:'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)
提示如下:
你可以像这样获取答案:
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)
希望有帮助!
【讨论】:
我使用了 Benoit_11 的方法,但将其改为 input,因为 inputdlg 在 Octave 中似乎不起作用。
清除
clc
name=input('输入文件名,不带文件扩展名:','s')
文件名 = strcat(name,'.mat')
S = 加载(文件名)
【讨论】: