go 高维切片 for 赋值的坑
当维度很高时,使用 for 循环计算 Rosenbrock 函数会非常慢。可以使用 MATLAB 的向量化技巧来避免使用循环,提高计算速度。以下是一个不使用 for 循环的 Rosenbrock 函数实现:
```matlab
function f = rosenbrock(x)
% Rosenbrock function
% x is a vector with n elements
% f is a scalar
n = length(x);
x1 = x(1:end-1);
x2 = x(2:end);
f = sum(100*(x2 - x1.^2).^2 + (1 - x1).^2);
end
```
其中,`x1` 和 `x2` 分别表示向量 `x` 的前 `n-1` 个元素和后 `n-1` 个元素。然后,可以使用向量化的方式计算 Rosenbrock 函数的值,而不需要使用循环。