Silly question Incorrect Calculation

1 次查看(过去 30 天)
I have a nested if statement that states if the condition is not met run another script and then compare again until it meets the condition or meets the maximum iterations.
unk_row = 6
for it_cnt = 1:20
% for all elements in del_hat_cal (6 coords)
for unk_cnt = 1:unk_row
if (abs(del_hat_cal(unk_cnt,1))) < sqrt(C_x_hat(unk_cnt,unk_cnt))
del_hat_cal = del_hat_cal
% else if any of the values dont meet the requirements => run the iteration
% subroutine.
else IterationSubscript_1_2
end
disp ('Iterations')
disp(it_cnt)
end
The code executes correctly until the second iteration of it_cnt
It then says that the if statement is met and del_hat_cal = del_hat_cal.
I.e. that
0.00102504692433755
0.000892842647618351
0.00348097622168141
0.00306579321936951
0.00315561723971564
0.000665510381349233
< sqrt [
1.20641569956672e-05
9.90305275269894e-06
3.62427182962373e-05
2.53803334328813e-05
4.60943640122694e-05
1.44380191794682e-05 ]
Does anyone know why in the second iteration for it_cnt MatLab shows the condition is met, thus del_hat_cal = del_hat_cal ?

采纳的回答

Walter Roberson
Walter Roberson 2015-7-25
but 0.00102504692433755 is less than sqrt(1.20641569956672e-05) which is approximately 0.003 . The condition is met.
My guess, based upon the comment in the code, is that you want
unk_row = 6
for it_cnt = 1:20
% for all elements in del_hat_cal (6 coords)
unk_cnt = 1:unk_row
if all((abs(del_hat_cal(unk_cnt,1))) < sqrt(C_x_hat(unk_cnt,unk_cnt)))
del_hat_cal = del_hat_cal
% else if any of the values dont meet the requirements => run the iteration
% subroutine.
else IterationSubscript_1_2
end
disp ('Iterations')
disp(it_cnt)
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Software Development Tools 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by