matlab-sum的相关操作 发表于 2019-11-09 分类于 matlab 1. 题目 2. 使用for循环进行解决123456789101112function f=ED(x,n)a=0;f=0;for i=1:n a=a+cos(x(i));endfor i=1:n b=n-a+i*(1-cos(x(i)))-sin(x(i)); f=f+b^2;endend 注意: for i=1:n 3. 使用sum进行解决代码: 12345function f=EDG(x,n)a=sum(cos(x));b=1:n;f=sum((n-a+b.*(1-cos(x))-sin(x)).^2);end 注意: 常数可以和向量相加相减; 常数与向量进行乘除操作时需要加(.),例如.*和./等操作; 本题中的i是一个向量属于1:1:n; 4. 改进减少参数n的输入: 123456function f=EDG(x)n=length(x);a=sum(cos(x));b=1:n;f=sum((n-a+b.*(1-cos(x))-sin(x)).^2);end 注意: 主要是使用length求向量x的长度;