All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.epsilon.emc.simulink.util.MatlabEngineUtil Maven / Gradle / Ivy

/*********************************************************************
* Copyright (c) 2008 The University of York.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
package org.eclipse.epsilon.emc.simulink.util;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.epsilon.emc.simulink.engine.MatlabEngine;
import org.eclipse.epsilon.emc.simulink.exception.MatlabException;
import org.eclipse.epsilon.emc.simulink.types.Struct;

public class MatlabEngineUtil {

	public static List matlabArrayToList(double[] value) {
		ArrayList result = new ArrayList();
		for (int i = 0; i < value.length; i++) {
			result.add(value[i]);
		}
		return result;
	}

	public static List matlabArrayToList(long[] value) {
		ArrayList result = new ArrayList();
		for (int i = 0; i < value.length; i++) {
			result.add(value[i]);
		}
		return result;
	}

	public static List matlabArrayToList(int[] value) {
		ArrayList result = new ArrayList();
		for (int i = 0; i < value.length; i++) {
			result.add(value[i]);
		}
		return result;
	}

	public static List matlabArrayToList(float[] value) {
		ArrayList result = new ArrayList();
		for (int i = 0; i < value.length; i++) {
			result.add(value[i]);
		}
		return result;
	}

	public static List matlabArrayToList(boolean[] value) {
		ArrayList result = new ArrayList();
		for (int i = 0; i < value.length; i++) {
			result.add(value[i]);
		}
		return result;
	}

	public static List matlabArrayToList(byte[] value) {
		ArrayList result = new ArrayList();
		for (int i = 0; i < value.length; i++) {
			result.add(value[i]);
		}
		return result;
	}

	public static List matlabArrayToList(short[] value) {
		ArrayList result = new ArrayList();
		for (int i = 0; i < value.length; i++) {
			result.add(value[i]);
		}
		return result;
	}

	@SuppressWarnings("unchecked")
	public static  List matlabArrayToList(Object[] value) {
		T[] newValue = (T[]) value;
		ArrayList result = new ArrayList();
		for (int i = 0; i < newValue.length; i++) {
			result.add(newValue[i]);
		}
		return result;
	}

	public static Object parseMatlabEngineVariable(MatlabEngine engine, String variableName) throws MatlabException {
		Object value = engine.getVariable(variableName);
		return parseMatlabEngineVariable(value);
	}

	public static Object parseMatlabEngineVariable(Object value) {
		if (value instanceof byte[])
			return MatlabEngineUtil.matlabArrayToList((byte[]) value);
		if (value instanceof short[])
			return MatlabEngineUtil.matlabArrayToList((short[]) value);
		if (value instanceof int[])
			return MatlabEngineUtil.matlabArrayToList((int[]) value);
		if (value instanceof long[])
			return MatlabEngineUtil.matlabArrayToList((long[]) value);
		if (value instanceof float[])
			return MatlabEngineUtil.matlabArrayToList((float[]) value);
		if (value instanceof double[])
			return MatlabEngineUtil.matlabArrayToList((double[]) value);
		if (value instanceof boolean[])
			return MatlabEngineUtil.matlabArrayToList((boolean[]) value);
		if (value instanceof String[])
			return MatlabEngineUtil.matlabArrayToList((String[]) value);
		if (value instanceof Object[])
			return MatlabEngineUtil.matlabArrayToList((Object[]) value);
		if (value instanceof Character) 
			return String.valueOf(value);
		if (value instanceof String) 
			return String.valueOf(value);
		if (Struct.is(value))
			return new Struct(value);
		return value;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy