6

我对 MATLAB 编程很陌生,但遇到了一些麻烦:

我想调用 dSPACE MLIB 库函数。根据他们的示例,它需要一个字符串数组作为参数:

variables = {'Model Root/Spring-Mass-Damper System/Out1';...
         'Model Root/Signal\nGenerator/Out1'};

libFunction(variables);

这个变量被传递给函数。我现在的问题是:我有一个前端应用程序,用户可以在其中从任意数量的字符串中进行选择,这些字符串应该传递给 matlab 函数。由于前端是用 Java 编写的,因此传入数据的类型是 java.lang.String[]。如何将 java 字符串数组转换为与上面的示例变量具有相同类型的东西(我认为它是单元格数组的单元格数组或类似的东西)。

提前致谢!

4

1 回答 1

7

看看文档。MATLAB 使与 Java 类型之间的转换变得非常容易。

  1. 处理从 Java 返回的数据
  2. 处理 Java 数组

您可以在 MATLAB 中将 Java 字符串数组转换为元胞数组或字符数组。使用元胞数组甚至可以使用交错数组(在 Java 中是允许的)。

下面是两个简单的例子:

%# Preparing a java.lang.String[] to play with.
a = javaArray('java.lang.String',10);
b = {'I','am','the','very','model','of','a','modern','major','general'};
for i=1:10; a(i) = java.lang.String(b{i}); end;

%# To cell array of strings. Simple, eh?
c = cell(a);

%# To char array. Also simple.
c = char(a);
于 2012-05-08T08:03:59.090 回答