Tag: matlab

从Java调用matlab回调/函数句柄

如何将matlab函数句柄传递给Java对象并从Java中调用它(也就是说,我希望Java在准备好计算时告诉matlab)。 我正在尝试使用com.mathworks.jmi.Matlab类来评估Java对象中的Matlab表达式,但我看不出如何1)将回调funcktion句柄转移到Java,以及2)从Java调用它可能使用com.mathworks.jmi.Matlab类。 谢谢你,雅各布

在matlab和java中的fft

我使用jtransforms库在matlab和java中做了fft,但结果略有不同。 Matlab results: -0.0530528652679544 -0.00775535711930750 + 0.0281791646147104i -0.0304104457750988 – 0.209776156064443i 0.266945753193636 + 0.200338044445226i Jtransforms results: -0.05305448436232618 -0.007755593801247046 + 0.028180024600812384 -0.03041137385657606 -0.20978255812004887 0.26695389998013486 + 0.20034415846373468 结果是不同的还是Matlab只是四舍五入?

如何以编程方式在MATLAB编辑器中执行“collapse-all-folds”?

我一直在努力解决这个问题的时间比我想承认的要长一些。 我正在尝试以编程方式执行当用户单击“ View > Collapse All按钮或在编辑器窗口中单击鼠标右键,然后单击Code Folding >“ Fold All Code Folding Action时发生的相同Action 。 到目前为止我发现了什么? 可以在enum com.mathworks.mde.editor.ActionID找到与Action对应的String ,它是: ‘collapse-all-folds’ 。 当Action激活时,似乎执行以下方法: org.netbeans.api.editor.fold.FoldUtilities.collapseAll(…) (因此netbeans标记)。 这段代码允许我获取EditorAction , ActionManager , MatlabEditor实例: jEd = com.mathworks.mlservices.MLEditorServices.getEditorApplication.getActiveEditor; jAm = com.mathworks.mde.editor.ActionManager(jEd); jAc = com.mathworks.mde.editor.EditorAction(‘collapse-all-folds’); 我的问题是我找不到实际激活 Action 。 任何想法/替代品? EDIT1 :在“书”中挖了一下之后,我觉得我比以前更接近(但仍然不是那里)。 从书中引用: Java GUI组件通常使用ActionMap来存储由侦听器在鼠标,键盘,属性或容器事件上调用的可运行Actions 。 与对象方法不同,MATLAB不能直接调用Actions 。 然后解释了一个解决方法,其中大致涉及:获取某种Action对象; 创建一个ActionEvent并使用ActionEvent作为参数调用Action的actionPerformed ,如下所示: import java.awt.event.*; jEd […]

如何使用MATLAB数组作为HashMap java对象的键?

put函数工作正常,但get函数没有。 显然我不知道诀窍。 >> X = [ 1, 2, 3]; >> M = java.util.HashMap; >> M.put(X,1); >> M.get([1,2,3]) ans = [] 我搜索并阅读了很多post,但找不到解决这个问题的方法。 如果有人能让我知道这个伎俩会很棒。

覆盖MATLAB默认静态javaclasspath的最佳方法

MATLAB配置为在搜索用户可修改的动态路径之前搜索其静态java类路径。 不幸的是,静态路径包含相当多的非常旧的公共库,因此如果您尝试使用新版本,最终可能会加载错误的实现并获得错误。 例如,静态路径包含google-collections.jar的旧副本,该副本长期以来被Google的guava库取代,并且具有一些相同的类名(例如com.google.common.base.Objects)。 因此,如果你调用一个使用这种类之一的新方法的Guava方法,你最终会得到令人惊讶的NoSuchMethodErrors,因为首先找到了google-collections jar。 从R2012b开始,MATLAB允许您通过在首选项文件夹中放置javaclasspath.txt文件来指定要添加到静态路径的其他jar,但是将jar添加到路径的末尾,并且不允许您覆盖生成的jar进入MATLAB。 那么最好的解决方法是什么?

如何分析~13GB的数据?

我有大约300个文本文件,其中包含跟踪器,种子和同伴的数据。 每个文件的组织方式如下: tracker.txt time torrent time peer time peer … time torrent … 我有每个跟踪器的几个文件,并且重复了大部分信息(相同的信息,不同的时间)。 我希望能够分析我所拥有的内容并报告类似的事情 每个跟踪器有多少种子 有多少跟踪器是列出的种子 种子有多少同伴 对同龄人有多少种洪流 数据的庞大数量使我难以接受。 这是我尝试过的。 MySQL的 我把所有东西都放进了数据库; 每个实体类型一个表和用于保存关系的表(例如,此torrent在此跟踪器上)。 将信息添加到数据库的速度很慢(当我尝试这个时,我没有13GB的信息),但之后分析关系是不行的。 每个稍微复杂的查询都需要24小时才能完成(如果有的话)。 示例查询将是: SELECT COUNT(DISTINCT torrent) FROM TorrentAtPeer, Peer WHERE TorrentAtPeer.peer = Peer.id GROUP BY Peer.ip; 我尝试在my.cnf文件中增加内存分配,但似乎没有帮助。 我使用了my-innodb-heavy-4G.cnf设置文件。 编辑:添加表格详细信息 这是我使用的: Peer Torrent Tracker ———– ———————– —————— id (bigint) id (bigint) id […]

如何在所有缩放级别实时准确地绘制大数据向量?

我有大量的数据集(10 Hz数据,每24小时864k点),我需要实时绘制。 这个想法是用户可以缩放和平移到非常详细的散点图。 数据不是很连续,而且有峰值。 由于数据集太大,每次绘图刷新时都无法绘制每个点。 但是我也不能只是绘制每一个点,否则我会错过大而短的尖峰等主要特征。 Matlab做得对。 你可以给它一个864k向量的零,只需将任意一个点设置为1,它就可以用缩放和平移实时绘制。 Matlab是如何做到的? 我的目标系统是Java,因此我将在Swing / Java2D中生成该图的视图。

如何在Java对象中通知MATLAB对象?

为简单起见,假设我有一个Java对象,它以随机间隔的时间间隔生成一个随机数。 我希望每次生成其中一个随机数时都会通知MATLAB对象(这样MATLAB对象就可以对数据执行某些任务)。 我该如何实现这样的东西? 如何让Java对象通知MATLAB对象发生了什么? PS我是MATLAB中的强大程序员,但对Java来说还算新手。

在r或其他软件中查找草图图像的坐标(例如,以照片格式扫描)

我想用多边形重绘R中的任何草图。 但我需要一项艰苦的工作才能找到坐标(每个点的X或Y值)。 是否有任何R包或其他软件可以从图像中找到坐标? 因此,输出将是具有相当高的点数(x,y)的数据,以便可以重新创建该图。 编辑:…….. 以下是示例: (1)地图轮廓例如: 第二个例子: (2)对象形状示例:

如何在mapper(Hadoop)中使用MATLAB代码?

我有一个处理图像的matlab代码。 我想创建一个使用该代码的Hadoop映射器。 我遇到了以下解决方案,但不确定哪一个是最好的(因为很难在hadoop中为每个从节点安装matlab编译器运行时): 手动将该matlab代码转换为C ++中的OpenCV,并从映射器调用其exe / dll(并提供适当的参数)。 不确定,因为群集在每个节点而不是Windows上安装了Linux。 使用Hadoop Streaming。 但是Hadoop流需要一个可执行文件作为映射器,而matlab的可执行文件也需要Matlab Compiler Runtime,这很难在每个从属节点上安装。 将其自动转换为C / C ++代码并自动创建其exe(不确定这是否正确,因为exe将要求运行matlab运行时,或者转换中可能存在很难修复的编译器问题) 使用Matlab Java Builder。 但是这样创建的jar文件也需要运行时。 有什么建议么? 提前致谢。