Matlab mcc功能可以';t返回值,为什么?

Matlab mcc功能可以';t返回值,为什么?,matlab,exe,mcc,Matlab,Exe,Mcc,我使用MatlabMCC创建一个独立的应用程序exe文件,然后使用php调用exe文件。但是我不能得到函数返回值,它总是空的!!下面是我在m文件中的测试示例 function result=mysum(in) if nargin<1 in=[1,2,3]; else in=str2num(in); end result=sum(in); end 但是,$ars[0]始终为空!! 我试图自己或通过互联网找到答案,但失败了。给我一个帮助,谢谢。注意两件事: 将函数设置为接受

我使用MatlabMCC创建一个独立的应用程序exe文件,然后使用php调用exe文件。但是我不能得到函数返回值,它总是空的!!下面是我在m文件中的测试示例

function result=mysum(in)
if nargin<1
    in=[1,2,3];
else
    in=str2num(in); 
end
result=sum(in);
end
但是,
$ars[0]
始终为空!! 我试图自己或通过互联网找到答案,但失败了。给我一个帮助,谢谢。

注意两件事:

  • 将函数设置为接受单个输入参数
  • 从Windows命令行运行应用程序时,参数将作为字符串传入
  • 因此,如果您键入
    mysum 1
    (在未编译的程序上键入
    mysum[1,2]
    ,我猜如果您在编译的程序上从Windows命令行键入,虽然我没有测试过),它会工作,给出答案
    1
    ,如果键入
    mysum[1,2]
    ,它会工作,给出答案
    3
    。请注意,
    mysum[1,2]
    mysum([1,2])
    不同,因为它传递的是字符串
    '[1,2]'
    ,而不是双精度数组
    [1,2]

    但是如果您键入
    mysum12
    ,它将失败,因为您现在正在传入两个字符串输入参数,并且您的函数设置为只接受一个

    重写函数,使其接受数量可变的输入参数(请查看
    varargin
    以实现此目的),将
    str2num
    依次应用于每个输入(如果使用了
    varargin
    ,则将
    varargin{1}
    应用于
    varargin{n}
    ),然后分别求和

        <html>
        <head>
        <title>test</title>
        </head>
        <body>
        <?php  
        exec('F:\myevm\apache\htdocs\shs.exe [2,2,3,3,3] [4,4,4,4,4] 356 1567 1678',$ars);
        echo '<br>';
        echo $ars[0];
    
        ?>
    
        </body>
       </script>
       </html>