【问题标题】:How can I pass two matrices as arguments in a matlab executable?如何在 matlab 可执行文件中将两个矩阵作为参数传递?
【发布时间】:2013-12-19 03:38:12
【问题描述】:

例如在 MatLab 中,我使用的命令行:

functionname([1 2 3;4 5 6],[1 3 2;7 9 8])

我得到一个结果。但是,在使用 cmd 的 Windows 上:

functionname "[1 2 3;4 5 6]" "[1 3 2;7 9 8])

这似乎不起作用。

【问题讨论】:

  • 您期待什么结果?这个函数是否会向控制台输出一些东西,或者你是否期望一个返回值被神奇地打印出来?
  • 该函数将两个矩阵作为参数,进行相同的计算并返回结果。我直接在matlab命令行上测试过,效果很好。但是在创建可执行文件后,我找不到如何将两个矩阵作为参数传递。

标签: matlab arguments executable


【解决方案1】:

您必须根据需要将参数转换为数字:

在函数名(a, b)中,添加

if ischar(a)
  a = eval(a);
end

if ischar(b)
  b = eval(b);
end

现在 functionname() 可以使用数字参数调用,也可以从命令行使用字符串参数调用:

functionname "[1 2 3;4 5 6]" "[1 3 2;7 9 8]"

请注意,eval() 与 mat2str() 的作用相反。

【讨论】:

    【解决方案2】:

    这个问题已经在How to create a executable .exe file from .m file回答了。

    您应该使用mcc -m yourfile,它只适用于安装了 Matlab 的机器。 另一种方法是使用 .dll 并通过 Visual Studio 运行它。

    【讨论】:

    • 我已经创建了 exe 文件,问题是我找不到如何将两个矩阵作为参数传递。例如,对于两个数值,我可以使用 functionname 4 5 但 functionname "[1 2 3;4 5 6]" "[1 3 2;7 9 8]) 不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 2019-04-08
    相关资源
    最近更新 更多