标签: matlab-compiler

MATLAB编译器与MATLAB编码器

这两者有什么区别?

据我所知,MATLAB编译器将MATLAB代码包装成.exe文件,这样它就可以在不安装MATLAB的情况下使用,只需要MCR.除此之外,MATLAB Builder NE还可用于生成.Net程序集,与.Net框架而不是.exe文件一起使用,但它们仍然需要MCR.

现在我不明白MATLAB Coder用的是什么?它生成C/C++代码.但MATLAB代码是否真的转换为C/C++,还是仅仅像MATLAB编译器那样打包?是否还需要MCR才能运行?

我知道这不是一个编程问题.但我搜索了互联网,但仍然没有找到明确的答案.这些是非常昂贵的产品,所以我想知道我正在进入什么.

matlab matlab-deployment matlab-compiler matlab-coder

43
推荐指数
1
解决办法
2万
查看次数

如何将命令行参数传递给在Linux/Unix上运行的独立MATLAB可执行文件?

如何将命令行参数传递给在Linux/UNIX上运行的独立MATLAB可执行文件?

我需要将我的MATLAB脚本编译为一个独立的文件,可以在没有MATLAB的机器上运行.它需要能够以类似于C的方式工作argv[],您可以在其中执行以下操作:

命令行:

myfile argument1.txt argument2.txt
Run Code Online (Sandbox Code Playgroud)

其中参数1和2是输入和输出文件.

确切的语法并不重要,但它应该像argv[].什么是可以做到这一点的功能?


我的意思是我的计算机上有MATLAB,但是我需要制作一个可以在Unix系统上运行的独立可执行文件,这些计算机上没有MATLAB(它是一个集群,在一个节点上只有MATLAB).我需要找到一种方法来制作varargin函数,而无需在运行该程序的计算机上安装MATLAB.如果我可以告诉MATLAB将MATLAB库放在每个可执行文件中,那就没关系,只要它是一个完整的独立包.

matlab command-line-arguments matlab-deployment matlab-compiler

26
推荐指数
2
解决办法
3万
查看次数

Matlab Kalman/usr/bin/ld:找不到-lstdc ++

我正在关注Matlab编码器kalman教程Matlab.使用时codegen,出现如下错误:

/ usr/bin/ld:找不到-lstdc ++

collect2:ld返回1退出状态

libstdc++.so.6/lib//usr/lib

gcc matlab-compiler

20
推荐指数
4
解决办法
3万
查看次数

有人可以指向我在线/免费的MATLAB编译器/解释器或解释这个MATLAB代码中发生了什么?

我提前为这个问题道歉.我不喜欢"解释此代码"的问题,但我找不到任何关于我的具体示例的文档.

背景
我的问题是这个.我试图将一些MATLAB代码翻译成C#,但我同时还要学习MATLAB.我不与任何知道MATLAB代码的人合作,我无法访问MATLAB,所以我无法测试任何代码,我找不到任何关于以下问题的文档.所以...

问题(S)

  1. 在某处可以使用免费的在线/桌面MATLAB编译器/解释器来测试MATLAB代码吗?

    ...要么...

  2. 是否有人可以解释以下代码段:

    someVar.member1=myValue1;
    someVar.member2=myValue2;
    if (myCondition)
        for i=1:myTotal
            someVar(i).member3=myValue3;
        end;
    end;
    
    Run Code Online (Sandbox Code Playgroud)

    这是否someVar成为一个数组?难道我失去了member1member2或者它救什么我已不知何故?

matlab matlab-compiler

18
推荐指数
4
解决办法
5万
查看次数

java.library.path,classpath Netbeans 8.0.2

我刚安装了Matlab Runtime:

Distributor ID: Ubuntu
Description:    Ubuntu 15.04
Release:    15.04
Codename:   vivid
Run Code Online (Sandbox Code Playgroud)

你可以找到Matlab的运行时间在这里,我在安装R2015b的情况下(9.0)*(MATLAB运行9.0,对于R2015b,旨在用MATLAB 8.6,这也是R2015b工作).

Matlab库安装到:/ usr/local/MATLAB

我正在使用Netbeans 8.0.2

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) 
Run Code Online (Sandbox Code Playgroud)

我从程序中得到的错误如下:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the required library libmwmclmcrrt.so.9.0 on java.library.path.
This library is typically installed along with MATLAB or the MCR. Its absence may indicate an issue with that installation or the current path configuration.
The MCR …
Run Code Online (Sandbox Code Playgroud)

java matlab netbeans matlab-compiler netbeans-8

14
推荐指数
1
解决办法
1630
查看次数

是否可以在Windows 8上安装Windows 7 for Windows 7?

我试图安装Windoes SDK for Windows 7 and .NET framework 4MATLAB R2015b,在Windows 8中.但是我收到以下错误:

Windows安装程序正忙于配置另一个程序

在此输入图像描述

但是,没有其他程序同时安装.这个问题的原因是什么?是因为无法Windows SDK 7在Window 8 上安装吗?

以下是安装失败时的输出日志:

10:03:12 AM Friday, October 30, 2015: -------------------------------------------------------------------------------------------------
10:03:12 AM Friday, October 30, 2015: [SDKSetup:Info] Begin
10:03:12 AM Friday, October 30, 2015: [SDKSetup:Info] SDKSetup Version 7.1.7600.30111
10:03:16 AM Friday, October 30, 2015: [SDKSetup:Info] SDKSetupDll_DoTasks: Starting
10:03:16 AM Friday, October 30, 2015: [SDKSetup:Info] SDKSetupDll_DoTasksWithGUI: Starting
10:03:17 AM Friday, October 30, 2015: [SDKSetup:Info] Config_OS_Detect: Operating system installation …
Run Code Online (Sandbox Code Playgroud)

matlab winapi failed-installation windows-8 matlab-compiler

13
推荐指数
2
解决办法
347
查看次数

matlab中的C C++和C++中的matlab

似乎有几种方法可以在C C++中调用matlab并在matlab中调用C C++.当我尝试在这里列出它们时,请指出它如果我错过了什么.

要在matlab中调用C C++,还有两种方法.第一个是调用C共享库中的函数.第二个是将C C++代码构建为二进制MEX文件,这些文件将从MATLAB命令行调用.对于第一种方法,C共享库是否只是通用的,即没有改变他们的matlab的C代码,并从像gcc这样的通用C编译器编译?

要在C C++中调用matlab代码,有两种方法可用.第一个是Matlab引擎.第二个是使用MATLAB Compiler mcc从MATLAB代码创建C或C++共享库.

除了matlab和C++之外,C++还可以通过写入和从某些文件(例如mat文件,文本文件)读取数据来进行通信.

有多种方法可以实现这里的每个目标,你能告诉我哪些案例最适合使用哪些目标?即调用C共享库中的函数VS将C++代码构建成二进制MEX文件,Matlab引擎VS将Matlab代码编译成C C++共享库.

感谢致敬!

c matlab mex matlab-engine matlab-compiler

10
推荐指数
1
解决办法
1万
查看次数

Matlab部署:将文件添加到源代码控制?

我已经创建了一个相当好的部署项目,现在我想将它添加到源控制存储库以供其他人使用.
我面临的主要问题是创建的.prj文件deploytool包含绝对路径,这些路径在其他计算机上不起作用.到目前为止,我已经尝试了以下内容:

  • 使用just mccwithout 创建独立的exe deploytool.这很好但我可以找到一种方法来创建_pkg.exe包含所有内容的final .mcc似乎无法创建此文件,似乎没有任何其他工具.这是真的吗?
  • 编辑.prj文件以包含相对路径而不是绝对路径.这只能部分起作用,因为该.prj文件包含一个名为的部分,该部分MATLABPath总是被当前setpath的matlab 替换.任何使用此文件的人都必须检查它,因为它在使用时会被更改.
  • 找到一种生成.prj文件的方法.mcc文档说:Project files created using either mcc or deploytool are eligible to use this option.建议有一种方法来创建一个.prj文件,mcc但我无法找到如何做到这一点.

有这种情况的解决方案吗?

matlab mcc matlab-deployment matlab-compiler

10
推荐指数
1
解决办法
2687
查看次数

在linux上从dotnet core调用matlab共享库

我正在尝试调用使用在Linux容器上运行的C#(.NET Core)的MathWorks MATLAB Compiler SDK创建的共享库.

我有一个matlab .m文件,我使用MATLAB R2018b编译器SDK编译成.dll.因为最终执行环境是在Linux容器上运行的.NET Core 2.2,所以我选择了"C共享库"选项.我使用.NET的DLLImport机制调用该共享库.

这是我项目中的一些代码.这段代码是KISS级的,因为在开始主项目之前,我需要了解如何在Linux上集成MATLAB和C#.

haveSomePi.m

function hal = haveSomePi()
    hal = 3.1415;
end
Run Code Online (Sandbox Code Playgroud)

MyMath.h

extern LIB_MyMath_C_API bool MW_CALL_CONV mlfHaveSomePi(int nargout, mxArray** hal);
Run Code Online (Sandbox Code Playgroud)

MyMathWrapper.cs

[DllImport("MyMath.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void mlfHaveSomePi(int nargout, ref IntPtr hal);
Run Code Online (Sandbox Code Playgroud)

MyMathWrapperTests.cs

[TestMethod]
public void ShouldReturnPi()
{
    var hal = IntPtr.Zero;

    MyMathWrapper.mlfHaveSomePi(1, ref hal);

    double result = (double)hal; 

    Assert.AreEqual(3.1415, result, 1e-5);
}
Run Code Online (Sandbox Code Playgroud)

预期的结果是测试方法中的断言通过.它失败是因为尝试将IntPtr强制转换为double在这种情况下没有意义.我确信有一种方法可以取消引用IntPtr以获得底层的双重,我只是没有找到特定的信息块.

将.m文件编译成.NET库和COM对象时,我成功了.我不认为我可以在Linux上使用这些库中的任何一个,因为每个操作系统的二进制加载/链接格式不同.在COM对象中调用方法时,我能够直接将IntPtr强制转换为double,必须在后台运行一些编组魔法.

  1. DLLImport语句的方法签名是否正确?我将mxArray**映射到IntPtr吗?
  2. 我如何从IntPtr获得双倍?将一块内存复制到托管字节数组并进行转换?

我的最终目标是从dotnet访问matlab代码的大型信号处理库.matlab代码使用了很多向量和数组,因此将这些进出非文件库是我的下一个障碍.

最好的祝福.

linux matlab-compiler .net-core

10
推荐指数
1
解决办法
513
查看次数

哪个是最新的Matlab版本允许在没有管理员权限的情况下安装MCR?

我想将一些GUI编译到Windows独立应用程序(*.exe)中.主要思想是在不同的计算机上运行我的应用程序,而无需运行它的权限.

在执行这些步骤时,我注意到当我想vcredist_x86.exe在不同的计算机上运行时,需要管理员权限.我在官方论坛上问道,他们证实这是不可能的.

此处还有其他有趣的替代版本: 使用MATLAB编译器4.6(R2007a)时,如何在没有管理员权限的情况下安装Matlab组件运行时

尽管现在没有支持的方式,但在Matlab版本之前可能运行没有特权的独立应用程序?

我的版本是2010b但我可以使用最新版本,它支持在没有特权的情况下运行MCR的可能性.我有Matlab编译器,但没有Matlab代码生成器(自动翻译成另一种语言).

matlab matlab-deployment matlab-compiler

9
推荐指数
1
解决办法
1073
查看次数