Main Content

.NET에서 MATLAB 세션 시작하기

.NET 엔진 프로그램을 설정하고 빌드하는 방법에 관한 자세한 내용은 .NET 개발 환경 테스트하기 항목을 참조하십시오.

.NET 프로그램에서 동기식 또는 비동기식으로 MATLAB® 세션을 시작할 수 있습니다. 다음 MathWorks.MATLAB.Engine.MATLABEngine 메서드를 사용하여 MATLAB을 시작합니다.

  • StartMATLAB — MATLAB 세션을 동기식으로 시작합니다.

  • StartMATLABAsync — MATLAB 세션을 비동기식으로 시작합니다.

항상 TerminateEngineClient 메서드를 사용하여 MATLAB 세션을 종료해야 합니다.

다음에 대해 using 명령문을 추가합니다.

  • MathWorks.MATLAB.Engine

  • MathWorks.MATLAB.Types

  • MathWorks.MATLAB.Exceptions

-nosplash 옵션을 사용하여 MATLAB 시작하기

MATLAB을 시작하여 시작 및 종료 메시지를 표시합니다.

using MathWorks.MATLAB.Engine;
using MathWorks.MATLAB.Exceptions;
using MathWorks.MATLAB.Types;
using System;

namespace MathWorks.MATLAB.Engine.ConsoleExamples {
    public class Program {   
        public static void Main(string[] args) {
            Console.Write("Starting MATLAB... ");
            using (dynamic eng = MATLABEngine.StartMATLAB("-nosplash")) {
                Console.WriteLine("done.");
                eng.disp(new RunOptions(nargout: 0), "Hello. Closing MATLAB...");
            }
            // Call when you no longer need MATLAB Engine in your application.
            MATLABEngine.TerminateEngineClient();
            Console.WriteLine("done.");
        }
    }
}

두 개의 MATLAB 세션을 비동기식으로 시작하기

두 개의 MATLAB 세션을 비동기식으로 시작한 다음 진행하기 전에 이 두 세션이 시작되기를 기다립니다.

using MathWorks.MATLAB.Engine;
using MathWorks.MATLAB.Exceptions;
using MathWorks.MATLAB.Types;
using System.Threading;
using System.Threading.Tasks;
using System;

namespace MathWorks.MATLAB.Engine.ConsoleExamples {
    public class Program {
        public static async Task Main(string[] args) {
            // StartMATLABAsync
            Task<MATLABEngine> startMatlab1 = MATLABEngine.StartMATLABAsync();
            Task<MATLABEngine> startMatlab2 = MATLABEngine.StartMATLABAsync();
            
            Console.WriteLine("Two MATLAB sessions are starting in the background.");
            Console.WriteLine("Wait for both to start before continuing.");
            await Task.WhenAll(startMatlab1, startMatlab2);
            Console.WriteLine("Two MATLAB sessions started.");
            MATLABEngine.TerminateEngineClient();
        }
    }
}

참고 항목

관련 항목