【问题标题】:Return perl array to MATLAB将 perl 数组返回到 MATLAB
【发布时间】:2011-03-21 04:14:39
【问题描述】:

有没有办法将 perl 数组返回给 MATLAB?还是我只需要返回一个字符串并解析它?我正在使用从 MATLAB 到 perl 脚本的调用来与 MySQL 数据库交互。在获得查询结果后,我想将其传递回 MATLAB。

编辑:我正在使用 perl.m 的修改版本来调用 perl 脚本。它调用的是我安装的 DBI 的 perl 版本,而不是 MATLAB 自带的副本。

我将 perl.m 的第 65 行从

perlCmd = fullfile(matlabroot, 'sys\perl\win32\bin\');

perlCmd = 'C:\Perl64\';

【问题讨论】:

  • 请包含一些代码,说明您如何在 Matlab 和 Perl 之间进行交互。
  • 我正在使用来自 Matlab 的内置 perl.m 文件。它只是对 perl 进行 dos 调用并返回结果。
  • 你有什么特别的理由必须使用 perl 吗?使用 JDBC 与 MySQL 的 MATLAB 连接要容易得多,它会将所有查询结果直接返回到 MATLAB 工作区。
  • @Adrian:主要原因是我对 Java 的经验为零。

标签: mysql perl arrays matlab


【解决方案1】:

你是如何调用你的 perl 脚本的?如果你只是做一个系统调用,那么你只能返回字符串输出。

你可以考虑将你的调用包装在一个 mex 文件中,或者从你的 perl 中编写 .mat 文件,但我怀疑字符串解析可能更容易,尤其是对于小型数组

编辑

想想我曾经在类似情况下所做的(必须将数据传输到 matlab 中)是生成一个 .m 文件来创建一个 matlab 矩阵,即

array = [
          1, 2, 3;
          4, 5, 6;
         ];

并保存到磁盘。程序完成后,我只需调用 m 文件将数据放入我的工作区

【讨论】:

  • 我对 perl 的经验很少,而对 MATLAB 的经验却更多,所以我宁愿在我熟悉的环境中进行大部分编程。
  • 我们在谈论多大(ish)的数组?通过字符串不可行吗?
  • 我的查询返回可能多达几千个数据点。我认为这应该不是问题,但我还没有研究性能。
  • 我喜欢它!使用 Perl 编写一个 .m 文件。 +1 创意。但是,这在性能方面如何工作?它会比读取 .csv 文件更快吗?
猜你喜欢
  • 2018-03-24
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 1970-01-01
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多