Silly question Incorrect Calculation

2 visualizzazioni (ultimi 30 giorni)
Jay
Jay il 25 Lug 2015
Commentato: Rena Berman il 12 Gen 2017
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 ?

Risposta accettata

Walter Roberson
Walter Roberson il 25 Lug 2015
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

Più risposte (0)

Categorie

Scopri di più su Graphics Object Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by