【问题标题】:Octave: Problems with load八度:负载问题
【发布时间】:2015-03-17 13:29:09
【问题描述】:

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

加载(“文件名.mat”)

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

file=input("文件名是什么:")

加载(“文件”)

但这没有用......

有人有什么建议吗?

【问题讨论】:

    标签: matlab load octave


    【解决方案1】:

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

    希望有帮助!

    【讨论】:

    • 哇,好棒的答案!我并没有真正让它与 inputdlg 一起工作,似乎 octave 不使用它。但是我稍微修改了代码,现在它可以完美运行了!
    • 哈哈谢谢!如果它对您有帮助,您可以将其标记为已接受,以便关闭线程(旁边的绿色复选标记)。谢谢!
    • 我应该发布我更改的代码吗?我不得不使用 variable=input("") 方法。
    • 是的,没关系!我赞成你的回答:)。干杯!
    • 谢谢,我也会为你做同样的事,但我刚刚加入,似乎无法投票!祝你有美好的一天:)
    【解决方案2】:

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

    清除

    clc

    name=input('输入文件名,不带文件扩展名:','s')

    文件名 = strcat(name,'.mat')

    S = 加载(文件名)

    【讨论】:

    • 如果它不起作用,请更新您的 Octave 版本。请注意,inputdlg 仅在 3.8.0 中实现。
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    相关资源
    最近更新 更多