我写MATLAB脚本已经有一段时间了,但我还是不明白它是如何“在引擎盖下”工作的。考虑下面的脚本,它以三种不同的方式使用(大)向量进行计算:
MATLAB矢量运算;
简单的循环,做相同的计算组件;
一个被认为比2更快的优化周期,因为它避免了一些分配和一些分配。
以下是代码:
N = 10000000;
A = linspace(0,100,N);
B = linspace(-100,100,N);
C = linspace(0,200,N);
D = linspace(100,200,N);
% 1. MATLAB Operations
tic
C_ = C./A;
D
我正在尝试运行一个系统识别问题,我的目标是识别三个(有限元)参数,以便分析将做出与测量结果接近的预测。这基本上是一个具有Matlab函数非线性的最小二乘非线性问题。我不断地得到:
Initial point is a local minimum.
Optimization completed because the size of the gradient at the initial point
is less than the value of the optimality tolerance.
Optimization completed: The final point is th
我有以下适应度函数:
function f = objfun(x,t)
f = x.*(t-x);
end
当我尝试使用MATLAB的优化工具和遗传算法(ga)求解器将此代码用作适应度函数时,我得到以下错误:
Error running optimization. Not enough input arguments.
我知道函数只有两个变量,我传递给它的是这几个变量,所以我不知道为什么我会得到这个错误。
有人能帮我解决这个问题吗?