duplicated result in for loop

1 次查看(过去 30 天)
Tino
Tino 2019-6-4
编辑: Jan 2019-6-4
powerr = [ ...
0.6164 3.4161 0.9950 3.4117
3.1654 0.4123 4.2391 1.0198
0.5745 3.0364 1.3191 3.1129
2.9883 0.7348 3.8730 0.4123
0.9381 3.3749 2.0421 3.5014
2.1817 1.0630 3.0643 0.9487];
k = 3;
m = k;
croppedz = powerr(1:end-mod(end, 2*m), :);
result = zeros(size(croppedz, 1) / 2 / m, size(croppedz, 2));
for lol = 1 : size(croppedz, 2)
hh = powerr(1:3);
gg = powerr(4:6);
n = m*fix(numel(hh)/m);
result (:, lol) = sum(reshape(sort(hh(1:n), col),m,[]),1) ./ ...
sum(reshape(sort(gg(1:n), col),m,[]),1);
end
disp(result)
I am getting the result
0.7132 0.7132 0.7132 0.7132
instead
0.7132 1.3271 0.7298 1.5515
thanks in advance
Tino

采纳的回答

Jan
Jan 2019-6-4
编辑:Jan 2019-6-4
The body of the loop does not depend on the loop counter lol. Therefore you must get the same value for each iteration.
A bold guess of what you want instead:
for lol = 1 : size(croppedz, 2)
hh = powerr(1:3, lol);
gg = powerr(4:6, lol);
...

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

产品


版本

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by