嗨,我用过mcc
将 Matlab 函数转换为独立的 .exe。当我在 Windows 命令提示符中运行 .exe 文件时,它返回以下错误:
- 输入参数太多//当我给出两个应该是的输入时
- 当我给出一个输入时,第一个参数的列数应与输入变量的行数一样多,//当我给出一个输入时,该行数应与独立的输入值集一样多。
我使用命令来构建独立的:“mcc -mv myfile.m -a datfile.fis” -------------- 构建过程正常。但是当我在 Windows 提示符下使用此命令“myfile.exe 2.0 20.2 ”运行时,会出现上述错误。我的程序接受两个输入并给出一个输出。我已经在同一台计算机上运行Matlab教程magicsquare.m来转换magicsquare.exe并且工作正常 有人可以帮忙吗? 请注意,在转换之前,程序在 matlab 中运行良好,我在 MATLAB 中得到如下输入
block 引用>myfile ([2.0 20.2])
最佳答案
当您从 Windows/DOS 命令行运行可执行文件时,参数会以字符串形式传递给可执行文件 - 就像您在 MATLAB 中将函数调用为 myfile "2.0""20.2"
.
每个输入都是一个字符数组(例如包含“2”、“.”和“0”的 ASCII 值),因此您的函数可能会出错,因为输入太多。
尝试重写您的函数,以便它使用 str2num
或 str2double
将输入转换为数字。或者将您的输入存储在文件中,并设计您的函数以接受文件名作为输入。
如果您希望它在 MATLAB 中运行时和部署时运行时表现不同,请在 if
子句中使用内置函数 isdeployed
来切换行为。
关于matlab - 从 Windows 命令行向编译为 .exe 的 Matlab 函数提供输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14431370/