вторник, 28 марта 2017 г.

.Net Assembly from MatLab

.Net Assembly from MatLab

1.
NET.addAssembly('System.Speech');
ss = System.Speech.Synthesis.SpeechSynthesizer;
ss.Volume = 100;
Speak(ss,'You can use .NET Library in Matrix Laboratory');

2.
asmpath = 'D:\VC\1305\gs.trade\GS.Matlab\bin\Debug\';
asmname = 'GS.Matlab.dll';

asm = NET.addAssembly(fullfile(asmpath,asmname));

obj = GS.Matlab.MyGraph;

mlData = cell(obj.getNewData)
objArr = cell(obj.getObjectArray);

objNewDataArr = obj.getNewDataProp;

figure('Name',char(mlData{1}))
plot(double(mlData{2}(2)))

xlabel(char(mlData{2}(1)))

3.
% F:\Work\Math\Matlab\Net
% NetDocCell_01.m

R = 3;
C=1;
asmpath = 'D:\VC\1305\gs.trade\GS.Matlab\bin\Debug\';
asmname = 'GS.Matlab.dll';

asm = NET.addAssembly(fullfile(asmpath,asmname));

obj = GS.Matlab.MyGraph;

mlData = cell(obj.getNewData);
%objArr = cell(obj.getObjectArray);
objNewDataArr = obj.getNewDataProp;

figure('Name',char(mlData{1}));
subplot(R,C,1);
% figure('Name',char(mlData{1}));
plot(double(mlData{2}(2)));
xlabel(char(mlData{2}(1)));

subplot(R,C,2);
objArr = obj.getObjectArray();

doubles1 = double(objArr(1));
doubles2 = double(objArr(2));

plot([doubles1 doubles2]);

subplot(R,C,3);
objDouble = obj.getDoubleArray;
doubles = double(objDouble);

plot(doubles);

------------------------------------------------------------

.cs
D:\VC\1305\gs.trade\GS.MAtlab\
namespace GS.Matlab
{
    // Call Methods from .Net Assembly from Matlab 
    public class MyGraph
    {
        public Object[] getNewData()
            /*
         * Create a System.Object array to use in MATLAB examples.
         * Returns containerArr System.Object array containing:
         *  fLabel System.String object
         *  plotData System.Object array containing:
         *      xLabel System.String object
         *      doubleArr System.Double array
        */
        {
            String fLabel = "Figure Showing New Graph Data";
            Double[] doubleArr =
            {
                18, 32, 3.133, 44, -9.9, -13, 33.03
            };
            String xLabel = "X-Axis Label";
            Object[] plotData = {xLabel, doubleArr};
            Object[] containerArr = {fLabel, plotData};
            return containerArr;
        }

        public Object[] getNewDataProp {
        get
        {
            String fLabel = "Figure Showing New Graph Data";
            Double[] doubleArr =
            {
                18, 32, 3.133, 44, -9.9, -13, 33.03
            };
            String xLabel = "X-Axis Label";
            Object[] plotData = {xLabel, doubleArr};
            Object[] containerArr = {fLabel, plotData};
            return containerArr;
        }
        }

    public object[] getObjectArray()
        {
            var arr1 = new double[] {1, 2, 3, 4, 5};
            var arr2 = new double[] { 6, 7, 8, 9, 10 };
            return new object[] {arr1, arr2};
        }
        public double[] getDoubleArray()
        {
            return new double[] { 1, 2, 3, 4, 5 };
        }

        public object[] getObjectArrayProp => new object[]
        {
            new double[] {1,2,3},
            new double[] {4,5,6,7,8,9}
        };
        public double[] getDoubleArrayProp => new double[] { 1, 2, 3, 4, 5 };
    }

}

Комментариев нет:

Отправить комментарий