In the code I shared below I am using matlab dll from c# application.The values returned by matlab object are random variables so I am expecting them to change at different calls. In Matlab it is working normally( returning different values in each call) but when I click the button again it is returning the same values
Here , powerRecLog() should return different value but whenever I click button again
onum.lqia,onum.lqib,onum.lqic,onum.lqid is not changing.
private void button1_Click(object sender, EventArgs e) // Yeni Olcum
{
var acCtx = Type.GetTypeFromProgID("matlab.application.single");
var matlab = (MLApp.MLApp)Activator.CreateInstance(acCtx);
matlab.Visible = 0;
matlab.PutWorkspaceData("Pr", "base", 0);
onum = new OnlineOlcum();
try
{
onum.xpos = Convert.ToDouble(textBox1.Text);
onum.ypos = Convert.ToDouble(textBox2.Text);
label1.Text += " " + onum.xpos + " " + onum.ypos + "\n";
double t1, t2, t3, t4;
t1 = Math.Round(T1.Mesafe(onum), 8);
t2 = Math.Round(T2.Mesafe(onum), 8);
t3 = Math.Round(T3.Mesafe(onum), 8);
t4 = Math.Round(T4.Mesafe(onum), 8);
string s1, s2, s3, s4;
s1 = t1.ToString(new CultureInfo("en-US"));
s2 = t2.ToString(new CultureInfo("en-US"));
s3 = t3.ToString(new CultureInfo("en-US"));
s4 = t4.ToString(new CultureInfo("en-US"));
matlab.Execute("Pr=PowerRecLog(" + s1 + ",1,160,1);");
onum.lqia = Math.Round((double)matlab.GetVariable("Pr", "base"), 8);
matlab.Execute("Pr=PowerRecLog(" + s2 + ",1,160,1);");
onum.lqib = Math.Round((double)matlab.GetVariable("Pr", "base"), 8);
matlab.Execute("Pr=PowerRecLog(" + s3 + ",1,160,1);");
onum.lqic = Math.Round((double)matlab.GetVariable("Pr", "base"), 8);
matlab.Execute("Pr=PowerRecLog(" + s4 + ",1,160,1);");
onum.lqid = Math.Round((double)matlab.GetVariable("Pr", "base"), 8);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
matlab.Quit();
}