C#调用matlab函数,参数传递的问题,请指教

C#调用matlab函数,参数传递的问题,请指教,第1张

问题1:想在button2_click事件调用m函数,如何使用button1_click事件中的变量arr?

使用一个全局变量保存arr。

// 问题1:没有声明arr?请问哪里不对呀?我已经将butoon1_click定义为public了呀

public是指方法是public,不是里面的变量都是public

//问题2:如何去掉每行末尾的\r 然后 将arr转成 4列的数组[1 32 53 54]

使用正则表达式去掉换行符,如下:

string content=@"aaa

bbb";

content = RegexReplace(content, "\r","");

至于转换数组,你本身不就是string数组吗?

1、将输入输出数据保存存到MATLAB的工作空间中;

2、在MATLAB主界面的左下角,选择出系统辨识工具箱,具体 *** 作如下图;

3、下图是我们打开的系统辨识工具箱。

4、载入数据,如图,选中要载入数据的类型。

5、会跳出一个数据配置界面,在相应的位置填入输入输出数据的名字(在工作空间中的变量名);

值得一提的是这里需要配置相关采样周期,这需要根据输入输出的采样时间而定,本实验中采用的是001s。

6、下面是我们载入数据后的效果。

7、系统辨识,如图中的 *** 作,用于选择我们要辨识的系统模型的基本结构,这里选择一个基于过程的传递函数模型。

8、根据自己的实际情况对模型的基本情况进行设置,如图所示。

9、设置完成后,单击确定后,就会在右侧的栏中出现一个图形,这就代码我们辨识后的图像;

用鼠标左键将摆图像拖拽到图中箭头所指的位置。

10、查看结果,拖拽后,我们再回到MATLAB主界面的工作空间中就会看到我们的模型的基本参数。

syms t s

h=exp(-t);%输入传递函数h(t)

h=laplace(h);

y=exp(-t)-exp(-2t);%输入系统输出y(t)

y=laplace(y)

x=y/h;

%x=simple(x)

x=ilaplace(x)%求出系统输入x(t)

ezplot(x,[-2,15])%显示x(t)在-2到15件的图形

您好,un为目标函数,它可用前面的方法定义;

x0为初始值;

A、b满足线性不等式约束 ,若没有不等式约束,则取A=[ ],b=[ ];

Aeq、beq满足等式约束 ,若没有,则取Aeq=[ ],beq=[ ];

lb、ub满足 ,若没有界,可设lb=[ ],ub=[ ];

nonlcon的作用是通过接受的向量x来计算非线性不等约束 和等式约束 分别在x处的估计C和Ceq,通过指定函数柄来使用,如:>>x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon),先建立非线性约束函数,并保存为myconm:function [C,Ceq] = mycon(x)

C = …

% 计算x处的非线性不等约束 的函数值。

Ceq = …

% 计算x处的非线性等式约束 的函数值。

lambda是Lagrange乘子,它体现哪一个约束有效。

output输出优化信息;

grad表示目标函数在x处的梯度;

hessian表示目标函数在x处的Hessiab值。

注意:

1 fmincon 函数提供了大型优化算法和中型优化算法。默认时,若在 fun 函数中提供了梯度(options 参数的 GeadObj 设置为 'on'),并且只有上下界存在或只有等式约束,fmincon 函数将选择大型算法。 当既有等式约束又有梯度约束时,使用中型算法。

2 fmincon 函数的中型算法一般是使用序列二次规划。在每一步迭代中求解二次规划子问题,并用 BFGS 法更新 Lagrangian 乘子和 Hessian 矩阵。

3 fmincon 函数的大型算法采用了subspace trust region 优化算法。这种算法是把目标函数在点x的邻域泰勒展开(x可以认为是人为提供的初始猜测),这个展开的邻域就是所谓的trust region,泰勒展开进行到二阶项为止。

4 fmincon 函数可能会给出局部最优解,这与初始值的选取有关。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11668965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存