- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
据我所知,我可以通过在 Linux 上安装 Matlab Runtime 在 Linux 上运行在 Windows 上生成的 .mex 文件(如果我错了请纠正我)。但是,如果我想在 Linux(如 Ubuntu)上使用在 Windows 上生成的 MATLAB 生成的 java 包怎么办?
目标:
我必须测试一项使用音频处理的功能。如果测试成功,我们将购买我们需要的产品。目前我在 Windows 上有我请求的许可证,因为请求的许可证有机器特定的限制,我能够在我的 Windows 机器上生成一些测试 java 代码,现在应用程序要部署在 android 上,所以我从谷歌了解到它需要运行 matlab 运行时或编译器才能使用转换/生成的代码。 Android 系统没有 MCR 或简单的 Matlab Runtime 安装支持,所以我转向了这个解决方案。
使用 linux 托管从 android 获取一些输入的 servlet,以 json 或文本形式处理返回答案。现在我的 java 包是使用 Windows 机器生成的,我迷路了。
据我所知,这种 code-convert-servlet-deploy-once 方法比 MATLAB Production Server 更具成本效益,因为我们必须为特定产品购买一次许可证。请记住,许可阶段是在我们测试此方法是否能给我们带来预期结果之后。
规范:
Windows 10
MATLAB 2016a(试用版)
MATLAB 产品(编译器/sdk、信号处理/音频处理工具箱)
使用 JDK 1.7.x 制作的包(与 Windows 上的 MATLAB jdk/jre 版本完全匹配)
Ubuntu 16 Desktop(安装了 Oracle jdk 8_101,还安装了 MATLAB Runtime,我也可以使用 jdk 7.x(与生成包时在 Windows 上使用的 MATLAB 相同))
问题:
在Linux中创建java程序时如何使用这个java包?
需要哪些软件和许可才能实现?
我应该在 Linux 机器上安装 MATLAB,在 Linux 机器上生成 Java 包,然后在同一台 Linux 机器上的 java 程序中使用该包吗? (我想我需要再次申请许可)
还有其他方法吗?我错过了什么吗?
最佳答案
由 MATLAB Compiler SDK 生成的 Java 包通常是跨平台的 - 但是,它们可能会调用特定于平台的 mex
文件或其他库,如果它们将 Java 包作为一个整体最终将是特定于平台的。
您并不完全清楚您是否正在调用 mex
文件;并且您可能在没有意识到的情况下调用特定于平台的库(例如,Signal Processing Toolbox 可能会调用某些库来执行某些操作)。
此外,您关于“能够在 Linux 上运行 mex
文件,这些文件是通过在 Linux 上安装 MATLAB Runtime 在 Windows 上生成”的评论令人困惑 - mex
文件不是跨平台的,并且根本不使用 MATLAB 运行时。
所以关于平台——您可以在 Linux 上使用在 Windows 上生成的 Java 包,只要它不调用任何特定于 Windows 的 mex
文件或库。但是如果你在Linux上生成它,你可以排除这个问题,所以如果你使用相同的平台进行编译和执行,对你来说会更容易。将您的 MATLAB 许可证重新分配给 Linux 机器应该相当容易。
Am I missing something?
是的:您提议的做事方式不太可能很好地扩展。如果您的 Linux 服务器上有一个 Java servlet 以及一个由 MATLAB Compiler SDK 生成的 Java 包,那么每当您调用 servlet 时,它都会调用 Java 包,这将启动 MATLAB Compiler Runtime (MCR ),运行您的 MATLAB 代码,将答案返回给 servlet,然后关闭 MCR。
MCR 需要很长时间才能启动(几乎与 MATLAB 一样长)。因此,由于 MCR 启动时间,每次调用都将花费相当长的时间。
因此,您可以通过创建某种实用工具来解决这个问题,该实用工具将启动 MCR 并将其保存在那里,并传递请求并将答案返回给 servlet。
但是您只有一个 MCR - 如果您同时收到多个请求会怎样?他们将排队(或丢弃)并且不会扩展。因此,您需要改进您的实用工具,以便它管理一个 MCR 池并将请求传递给一个免费的,并在进行时对它们进行负载平衡。
但是如果 MCR 崩溃或内存不足会发生什么?该实用工具将需要监视这种可能性,并重新启动任何崩溃的工具。
而且您将需要一些额外的东西,使您能够方便地管理所有这些东西。
完成所有这些操作后(这会很困难),您会发现您现在已经编写了相当多的 MATLAB Production Server。我知道这很昂贵,但您可能希望在决定采用您正在考虑的解决方案之前再看一看。
关于java - 在 Linux 中使用 MATLAB (Windows) 生成的 Java 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39287286/
在 Matlab 中,您可以选择创建新的“示例”脚本文件以及脚本、函数、类等。创建它们时,它们会获得一个脚本图标。 它们与其他标准脚本文件的处理方式有何不同? 是否有关于这些示例脚本类型的预期用途的文
我正在运行一个不是我自己编写的大 m 文件,它依赖于某些子函数。我想知道是否在所有嵌套函数的任何地方都使用了特定函数(在我的例子中是函数 eig.m(计算特征值))。有没有快速的方法来做到这一点? 亲
Matlab中有一个函数叫 copulafit .我怎样才能看到这个函数背后的代码?许多 Python 的 numpy 和 scipy 函数在 Github 上很容易开源,但由于某种原因我在 Gith
我定义了一个抽象基类measurementHandler < handle它定义了所有继承类的接口(interface)。这个类的两个子类是a < measurementHandler和 b < me
假设有一个矩阵 A = 1 3 2 4 4 2 5 8 6 1 4 9 例如,我有一个 Vector 包含该矩阵每一列的“类”
我有一个在后台运行的 Matlab 脚本。随着计算的进行,它会不断弹出进度栏窗口。这很烦人。 问题是我没有自己写 Matlab 脚本,这是一段很长很复杂的代码,我不想搞砸。那么如何在不修改 Matla
有没有办法从一个 matlab 程序中检测计算机上正在运行多少个 matlab 进程? 我想要恰好有 n 个 matlab 进程在运行。如果我的数量太少,我想创建它们,如果数量太多,我想杀死一些。您当
我正在测试我们在 Matlab 中开发的一个独立应用程序,当时我注意到它的内存使用量(根据 Windows 任务管理器)达到了 16gb 以上的数倍峰值。我决定在编译版本后面的脚本上使用 profil
我面临着一个相当棘手的问题。在 Matlab 中,命令 S = char(1044) 将俄语字母 д 放入变量 S。但是 disp(S) 返回空白符号,尽管内容实际上是正确的: >> S = char
我在这行 MATLAB 代码中遇到内存不足错误: result = (A(1:xmax,1:ymax,1:zmax) .* B(2:xmax+1,2:ymax+1,2:zmax+1) +
我正在寻找一种在 MATLAB 中比较有限顺序数据与非确定性顺序的方法。基本上,我想要的是一个数组,但不对包含的元素强加顺序。如果我有对象 a = [x y z]; 和 b = [x z y]; 我希
我有一个由 1 和 0 组成的二维矩阵。 mat = [0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1]; 我需
我可以在 Matlab 中用一组 x,y 点绘制回归线。但是,如果我有一组点(如下图),假设我有四组点,我想为它们绘制四条回归线……我该怎么做?所有的点都保存在 x,y 中。没有办法将它们分开并将它们
我正在尝试使用以下代码在 MATLAB 中绘制圆锥体。但是,当 MATLAB 生成绘图时,曲面中有一个间隙,如下图所示。谁能建议关闭它的方法? clearvars; close all; clc; [
我有一个 map称为 res_Map,包含一组不同大小的数组。我想找到用于存储 res_Map 的总内存。 正如您在下面看到的,看起来 res_Map 几乎不占用内存,而 res_Map 中的各个元素
有没有办法在 MATLAB 中组合 2 个向量,这样: mat = zeros(length(C),length(S)); for j=1:length(C) mat(j,:)=C(j)*S;
已结束。此问题不符合 Stack Overflow guidelines 。它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答它。 关闭 5 年前
我正在尝试将MatLab中的t copula适配到我的数据,并且我的功能是: u = ksdensity(range_1, range_1,'function','cdf'); v = ksdens
大家好,我目前正在尝试使用论文“多尺度形态学图像简化”中的 SMMT 运算符 Dorini .由于没有订阅无法访问该页面,因此我将相关详细信息发布在这里: 请注意,我将相关文章的部分内容作为图片发布。
我在MATLAB中编写代码,需要使用一个名为modwt的函数,该函数同时存在于两个我同时使用的工具箱(Wavelet和WMTSA)中。问题在于,一个版本仅返回一个输出,而另一个版本则返回三个输出。我应
我是一名优秀的程序员,十分优秀!