我需要在C#应用程序中运行MATLAB代码。我已阅读official documentation以便在应用程序中运行MATLAB函数。
它可以工作,但是我有一个缓存问题。 如果我在C#中运行MATLAB给定的代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
// Create the MATLAB instance
MLApp.MLApp matlab = new MLApp.MLApp();
// Change to the directory where the function is located
matlab.Execute(@"cd c:\temp\example");
// Define the output
object result = null;
// Call the MATLAB function myfunc
matlab.Feval("myfunc", 2, out result, 5, 7, "world");
// Display result
object[] res = result as object[];
Console.WriteLine(res[0]);
Console.WriteLine(res[1]);
Console.ReadLine();
}
}
}
具有以下matlab函数:
function [x,y] = myfunc(a,b,c)
x = a + b;
y = sprintf('Hello %s',c);
如果我在MATLAB脚本函数的x = a + b;
中更改了x = a * b;
,应用程序将继续返回a + b = 12而不是a * b = 35。
如何解决此缓存问题?