2012-05-08 41 views
5

Tôi khá mới để lập trình MATLAB và tôi gặp phải một số sự cố:MATLAB: Java String [] chuyển đổi

Tôi muốn gọi hàm dSPACE MLIB libriary. Theo mẫu của họ, nó yêu cầu một mảng chuỗi làm đối số:

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

libFunction(variables); 

Biến này được chuyển cho hàm. Vấn đề của tôi bây giờ là: Tôi có một ứng dụng giao diện người dùng, nơi người dùng có thể chọn từ một số lượng các chuỗi ký tự cần được chuyển đến hàm matlab. Vì giao diện người dùng là writtten trong Java, kiểu dữ liệu đến là java.lang.String []. Làm thế nào tôi có thể chuyển đổi một mảng các chuỗi java thành một cái gì đó có cùng kiểu với biến mẫu ở trên (tôi nghĩ nó là một mảng ô của mảng ô hoặc tương tự như vậy).

Cảm ơn trước!

Trả lời

6

Hãy xem tài liệu. MATLAB làm cho nó rất dễ dàng để chuyển đổi sang và từ các loại Java.

  1. Handling data returned from Java
  2. Dealing with Java arrays

Bạn có thể chuyển đổi một mảng của chuỗi Java để hoặc là một tế bào hoặc char mảng trong MATLAB. Việc sử dụng các mảng ô có thể hoạt động ngay cả với các mảng răng cưa (được cho phép trong Java).

Dưới đây là hai ví dụ đơn giản:

%# 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); 
+0

Hm Tôi không mong đợi nó sẽ là đơn giản ... Tôi đã thử nhiều cách tiếp cận liên quan đến 4 bước chuyển đổi. Tôi sẽ thử mã của bạn càng sớm càng tốt. – Oromis

Các vấn đề liên quan