八度:负载问题

Octave: Problems with load

我目前正在用 Octave 编写一个程序,我希望用户能够在其中插入他想要加载的文件。有问题的文件是 .mat 文件并加载了

load ("filename.mat")

我正在考虑做这样的事情:

file=input("Whats the file name: ")

load ("file")

但这没有用...

有人有什么建议吗?

这可能是因为您需要输入用单引号括起来的文件名:'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)

希望对您有所帮助!

我使用了 Benoit_11 的方法,但由于 inputdlg 在 Octave 中似乎不起作用,所以将其更改为 input。

clear

clc

name=input('Enter the file name, without the file extension: ','s')

filename = strcat(name,'.mat')

S = load(filename)