I am writing a C # program that should call MATLAB processing routines. I watched the MATLAB COM interface. Unfortunately, the COM interface seems rather limited in terms of the types of data that can be exchanged. Matrices and character arrays are supported, but there seems to be no support for exchanging structure or cell data between C # and MATLAB using the COM interface. For example, in the following code (provided that a DICOM image named IM000000 is present in the corresponding file folder), the variables "img" and "header" of MATLAB are an int16 256x256 matrix and a structure, respectively. Calling GetWorkspaceData works fine for 'img', but returns null for 'header' because 'header' is a structure.
public class MatlabDataBridge { MLApp.MLAppClass matlab; public MatlabDataBridge() { matlab = new MLApp.MLAppClass(); } public void ExchangeData() { matlab.Execute(@"cd 'F:\Research Data\'"); matlab.Execute(@"img = dicomread('IM000000');"); matlab.Execute(@"header = dicominfo('IM000000');"); matlab.GetWorkspaceData(@"img", "base", out theImg);
Is there a suitable workaround for structuring structure data to / from MATLAB using the COM interface? If not, is this functionality well supported by MATLAB Builder NE?
source share