How to write a summation code when the k is not equal to j
8 次查看(过去 30 天)
显示 更早的评论
I want to write the code like this,and the rage of k is 1 to K,but i don't know how to write the " j is not equal to k" this summation code,can anyone show me how to write it ?
采纳的回答
Image Analyst
2019-2-3
yang-En, haven't heard from you. If the vectorized approach above is to confusing to you then try this simple and intuitive for loop. It basically uses the "continue" command to skip interations where j = k.
numPoints = 3; % Whatever...
lambda = randi(9, 1, numPoints) % Whatever...
f = randi(9, 1, numPoints) % Whatever...
h = randi(9, 1, numPoints) % Whatever...
K = length(lambda)
outerSum = 0;
for k = 1 : K
innerSum = 0;
% Do the inner sum over j with j not equal to k
for j = 1 : length(h)
if j == k
continue; % Skip this iteration
end
innerSum = innerSum + h(j) * f(k);
end
outerSum = outerSum + lambda(k) * innerSum;
end
outerSum % Spew out to the command window so we can see what it is.
0 个评论
更多回答(1 个)
Torsten
2019-1-17
If all arrays involved have K elements, you can use
h = ...;
lambda = ...;
f = ...;
S = sum(h);
H = S-h ;
result = sum(lambda.*f.*H)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!