Warning: Integer operands are required for colon operator when used as index

3 vues (au cours des 30 derniers jours)
Hi, so I think i know what the issue is, that being the " /2 " portion of the code giving a decimal as an answer, but I thought the addition of " .5 " would fix that as it gives me all my correct values. My question is, does this warning actually affect the out come of my calculations?
pixel_seg.A81 = middle.middle_interpolate((28536/2+.5):(28598/2),:); %gives warning
pixel_seg.B81 = middle.middle_interpolate((28599/2+.5):(28634/2),:); %gives warning
tap.tapA81B81 = (((abs((sum(pixel_seg.A81)/length(pixel_seg.A81))-...
(sum(pixel_seg.B81)/length(pixel_seg.B81))))/...
(sum(pixel_seg.B81)/length(pixel_seg.B81)))*100);
Thanks for your time

Réponse acceptée

Walter Roberson
Walter Roberson le 25 Juin 2012
28536 is already even, so do not add 0.5 after dividing by 2.
28599 is odd, so it would need to be rounded after dividing by 2.
Using floor() or ceil() is safer than adding 0.5, due to potential round-off error.
  3 commentaires
Andrei Bobrov
Andrei Bobrov le 25 Juin 2012
please use 'ceil'
Benjamin
Benjamin le 25 Juin 2012
Thanks so much guys

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by