index must be a positive integer or logical

1 view (last 30 days)
Here is the portion of code that I am using currently that is giving me this error:
A = interpolate;
averg = mean([A(1:end-2),A(3:end)],2);
real_num = A(2:end-1);
streaking = [];
for idx = real_num
streaking(:,idx) = (abs(A(:,idx)-averg(idx))./averg(idx))*100;
end
>> Attempted to access A(:,73.2855); index must be a positive integer or logical.
>> Error in rad_cal2 (line 818)
streaking(:,idx) = (abs(A(:,idx)-averg(idx))./averg(idx))*100;
interpolate is a matrix

Accepted Answer

Matt Fig
Matt Fig on 8 Aug 2012
Edited: Matt Fig on 8 Aug 2012
The solution will depend on what you want to do. You could simply do:
for idx = round(real_num)
streaking(:,idx) = (abs(A(:,idx)-averg(idx))./averg(idx))*100;
end

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!